亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Dubbo?retries?超時重試機制的問題原因分析及解決方案

 更新時間:2022年04月14日 17:19:00   作者:m0_54861649  
這篇文章主要介紹了Dubbo?retries?超時重試機制的問題,解決方案是通過修改dubbo服務(wù)提供方,將timeout超時設(shè)為20000ms或者設(shè)置retries=“0”,禁用超時重試機制,感興趣的朋友跟隨小編一起看看吧

異常日志

[com.alibaba.dubbo.rpc.filter.TimeoutFilter] -  [DUBBO] invoke time out. method: sendMessagearguments: [{****內(nèi)容****}] , url is dubbo://*.*.*.*:20882/cn.demo.api.IDemoProviderApi?anyhost=true&application=demo&dubbo=2.8.4&generic=false&interface=cn.demo.api.IDemoProviderApi&methods=sendMessage,resetSendCount&pid=13008&revision=0.0.1-SNAPSHOT&side=provider&timeout=6000×tamp=1521449123489&version=1.0, invoke elapsed 10863 ms., dubbo version: 2.8.4, current host: 127.0.0.1 

異常原因

dubbo服務(wù)提供方,通過注解方式暴露的,參數(shù)設(shè)置如下:

@Service(version = "1.0", timeout = 6000)

消費方調(diào)用dubbo服務(wù),請求超時,dubbo服務(wù)有超時重試機制,所以對于提交的業(yè)務(wù),會有3次調(diào)用.

解決方案

修改dubbo服務(wù)提供方.將timeout超時設(shè)為20000ms.或者設(shè)置retries=“0”.禁用超時重試機制.

xml方式(消費方):

<!-- 需要消費的api --> 
 <dubbo:consumer check="false" id="dubboConsumerConfig" retries="0"/>

注解方式(提供方):

@Service(version = "1.0", timeout = 20000)

Dubbo超時重試機制

1、請求服務(wù)超時,但是最終程序執(zhí)行了3次,對于提交訂單的業(yè)務(wù),只能是新增一個訂單,這樣是不可以的.

2、dubbo:provider 可以設(shè)置超時時間 timout,以及如果超時允許被重連的次數(shù) retries.

3、dubbo:reference 可以設(shè)置超時時間,以及如果超時 timout,允許重連服務(wù)的次數(shù) retries;如果服務(wù)方有設(shè)置retries,消費方可以不設(shè)置該參數(shù).

4、dubbo:reference retries 的默認值和consumer一樣,而consumer默認為2次

dubbo:consumer

retries

default.retries

int

可選

2

#--------以下為轉(zhuǎn)載--------

1.超時設(shè)置

DUBBO消費端設(shè)置超時時間需要根據(jù)業(yè)務(wù)實際情況來設(shè)定,
如果設(shè)置的時間太短,一些復(fù)雜業(yè)務(wù)需要很長時間完成,導(dǎo)致在設(shè)定的超時時間內(nèi)無法完成正常的業(yè)務(wù)處理。
這樣消費端達到超時時間,那么dubbo會進行重試機制,不合理的重試在一些特殊的業(yè)務(wù)場景下可能會引發(fā)很多問題,需要合理設(shè)置接口超時時間。
比如發(fā)送郵件,可能就會發(fā)出多份重復(fù)郵件,執(zhí)行注冊請求時,就會插入多條重復(fù)的注冊數(shù)據(jù)。

(1)合理配置超時和重連的思路

1.對于核心的服務(wù)中心,去除dubbo超時重試機制,并重新評估設(shè)置超時時間。
2.業(yè)務(wù)處理代碼必須放在服務(wù)端,客戶端只做參數(shù)驗證和服務(wù)調(diào)用,不涉及業(yè)務(wù)流程處理

(2)Dubbo超時和重連配置示例

<!-- 服務(wù)調(diào)用超時設(shè)置為5秒,超時不重試--> 
<dubbo:service interface="com.provider.service.DemoService" ref="demoService"  retries="0" timeout="5000"/>

2.重連機制

dubbo在調(diào)用服務(wù)不成功時,默認會重試2次。
Dubbo的路由機制,會把超時的請求路由到其他機器上,而不是本機嘗試,所以 dubbo的重試機器也能一定程度的保證服務(wù)的質(zhì)量。
但是如果不合理的配置重試次數(shù),當(dāng)失敗時會進行重試多次,這樣在某個時間點出現(xiàn)性能問題,調(diào)用方再連續(xù)重復(fù)調(diào)用,
系統(tǒng)請求變?yōu)檎V档膔etries倍,系統(tǒng)壓力會大增,容易引起服務(wù)雪崩,需要根據(jù)業(yè)務(wù)情況規(guī)劃好如何進行異常處理,何時進行重試。

參考:https://www.cnblogs.com/binyue/p/5380322.html

補充:下面介紹下dubbo RPC 不能直接傳遞數(shù)組類型。

今天遇到一個大坑,提供的一個RPC接口批量查Redis數(shù)據(jù),由于數(shù)據(jù)類型不定,采用<String,Object>的map作為返回類型,查到的結(jié)果集其中有一個是數(shù)組類型,代碼沒報問題,但一直RPC異常,各種狗屎的嘗試排查,終于定位到問題。

最簡單的解決方案是將所有的value都轉(zhuǎn)化成String類型。

目測是dubbo序列化不允許直接傳遞數(shù)組類型,后面再研究。

到此這篇關(guān)于Dubbo retries 超時重試機制的問題的文章就介紹到這了,更多相關(guān)Dubbo retries 超時重試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • AspectJ的基本用法

    AspectJ的基本用法

    本文主要介紹了AspectJ的基本用法。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • ClassLoader類加載源碼解析

    ClassLoader類加載源碼解析

    這篇文章主要為大家詳細解析了ClassLoader類加載源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • springboot切換使用undertow容器的方式

    springboot切換使用undertow容器的方式

    最近稍微有點空閑,回頭再來優(yōu)化下基礎(chǔ)框架,也是一種重新學(xué)習(xí)。今天主要寫寫跟大家分享下springboot使用undertow,廢話不多說
    2022-07-07
  • SpringBoot各種注解詳解

    SpringBoot各種注解詳解

    SpringBoot的一個核心功能是IOC,就是將Bean初始化加載到容器中,Bean是如何加載到容器的,可以使用SpringBoot注解方式或者Spring XML配置方式。SpringBoot注解方式減少了配置文件內(nèi)容,更加便于管理,并且使用注解可以大大提高了開發(fā)效率
    2022-12-12
  • SpringBoot項目配置postgresql數(shù)據(jù)庫完整步驟(配置多數(shù)據(jù)源)

    SpringBoot項目配置postgresql數(shù)據(jù)庫完整步驟(配置多數(shù)據(jù)源)

    PostgreSQL是一種特性非常齊全的自由軟件的對象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),下面這篇文章主要給大家介紹了關(guān)于SpringBoot項目配置postgresql數(shù)據(jù)庫(配置多數(shù)據(jù)源)的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • windows環(huán)境下java開發(fā)工具maven的安裝教程圖解

    windows環(huán)境下java開發(fā)工具maven的安裝教程圖解

    Maven是一個項目管理和綜合工具。Maven提供了開發(fā)人員構(gòu)建一個完整的生命周期框架。這篇文章主要介紹了windows環(huán)境下java開發(fā)工具maven的安裝,非常不錯對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot整合之SpringBoot整合MongoDB的詳細步驟

    SpringBoot整合之SpringBoot整合MongoDB的詳細步驟

    這篇文章主要介紹了SpringBoot整合之SpringBoot整合MongoDB的詳細步驟,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • Java多線程實現(xiàn)模擬12306火車站售票系統(tǒng)

    Java多線程實現(xiàn)模擬12306火車站售票系統(tǒng)

    12360火車票售票系統(tǒng)基本上大家都用過,那你知道是怎么實現(xiàn)的嗎,今天我們就模擬12306火車站售票系統(tǒng)來實現(xiàn),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Java實現(xiàn)一個簡單的長輪詢的示例代碼

    Java實現(xiàn)一個簡單的長輪詢的示例代碼

    長輪詢是與服務(wù)器保持即時通信的最簡單的方式,它不使用任何特定的協(xié)議,例如 WebSocket ,所以也不依賴于瀏覽器版本等外部條件的兼容性。本文將用Java實現(xiàn)一個簡單的長輪詢,需要的可以參考一下
    2022-08-08
  • 聊聊MultipartFile與File的一些事兒

    聊聊MultipartFile與File的一些事兒

    這篇文章主要介紹了MultipartFile與File的一些事兒,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論