Dubbo 服務集群容錯配置


Dubbo集群容錯是靠配置cluster屬性來做

支持改屬性的標簽為<dubbo:service>,<dubbo:referece>,<dubbo:consumer>,<dubbo:provider>

但是后兩個粒度太粗,一般不采用

該屬性是可選的,默認值是failover

 

以下是各種可選值及其含義:

1.failover 失敗自動切換 (缺省值)

當出現失敗時,重試其他服務器. 通常用於讀操作, 但切換其他機器重試會帶來更長延遲 .所以可通過retries="2"來設置重試次數 (不含第一次),retries了這么多次之后,如果還是失敗,再返回失敗.    實例: 有5台服務器,  在retries=2的情況下,  消費者調用A機失敗, 接着重試B機, 然后又重試C機, 最后返回失敗. 為了避免長延遲,可以將該值配置為0, 也就是失敗馬上返回,不去嘗試其他機器

為什么說這種方式通常用於讀操作,而不是寫操作. 因為用在寫操作,可能為導致重復寫

 <dubbo:service cluster="failback" retries="2"/> 或者 <dubbo:reference cluster="failback" retries="2"/>

 

2.failfast 快速失敗

只發起一次調用,失敗立即報錯,通常用於非冪等性的寫操作,比如新增記錄

非冪等性的含義是,無論發起多少次請求,最后的結果都是一樣的

 

3.failsafe

失敗安全,出現異常時,直接忽略。

通常用於寫入審計日志等操作

 

4.failback 

失敗自動恢復, 后台記錄失敗請求, 定時重發, 通常用於消息通知操作

<dubbo:service cluster="failback"/> 或者 <dubbo:reference cluster="failback"/>

一般不用 ,可能監控中心這類應用用

 

5.forking

並行調用多個服務器,只要一個成功返回,通常用於實時性要求較高的讀操作,但需要浪費更多服務資源

可通過forks="2" 來設置最大並行數

<dubbo:service cluster="forking" forks="2"/> 或者 <dubbo:reference cluster="forking" forks="2"/>

 

6.broadcast

廣播調用所有提供者,逐個調用,任意一台報錯則報錯。(2.1.0開始支持)

通常用於通知所有提供者更新緩存或日志等本地資源信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM