更新時間:2021-09-07 11:26:15 來源:動力節(jié)點 瀏覽1721次
dubbo在調(diào)用服務(wù)不成功時,默認(rèn)是會重試兩次的。這樣在服務(wù)端的處理時間超過了設(shè)定的超時時間時,就會有重復(fù)請求,比如在發(fā)郵件時,可能就會發(fā)出多份重復(fù)郵件,執(zhí)行注冊請求時,就會插入多條重復(fù)的注冊數(shù)據(jù),那么怎么解決超時問題呢?如下
1.對于核心的服務(wù)中心,去除dubbo超時重試機制,并重新評估設(shè)置超時時間。
2.業(yè)務(wù)處理代碼放在服務(wù)端,客戶端只做參數(shù)驗證和服務(wù)調(diào)用,不涉及業(yè)務(wù)流程處理
全局配置實例
<!-- 延遲到Spring初始化完成后,再暴露服務(wù),服務(wù)調(diào)用超時設(shè)置為6秒,超時不重試-->
<dubbo:provider delay="-1" timeout="6000" retries="0"/>
當(dāng)然Dubbo的重試機制其實是非常好的QOS保證,它的路由機制,是會幫你把超時的請求路由到其他機器上,而不是本機嘗試,所以 dubbo的重試機器也能一定程度的保證服務(wù)的質(zhì)量。但是請一定要綜合線上的訪問情況,給出綜合的評估。
以上就是動力節(jié)點小編介紹的"Dubbo服務(wù)調(diào)用超時問題解決方案",希望對大家有幫助,想了解更多可查看Dubbo教程。動力節(jié)點在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。