在集群呼叫失敗時,dubbo 提供了多種容錯方案,預設為 failover 重試。
集群容錯模式
failover cluster
失敗自動切換,當出現失敗,重試其它伺服器。通常用於讀操作,但重試會帶來更長延遲。可通過 retries=「2」 來設定重試次數(不含第一次)。
重試次數配置如下:
<
dubbo:service
retries
="2"
/>
或<
dubbo:reference
retries
="2"
/>
或<
dubbo:reference
>
<
dubbo:method
name
="findfoo"
retries
="2"
/>
dubbo:reference
>
failfast cluster
快速失敗,只發起一次呼叫,失敗立即報錯。通常用於非冪等性的寫操作,比如新增記錄。
failsafe cluster
失敗安全,出現異常時,直接忽略。通常用於寫入審計日誌等操作。
failback cluster
失敗自動恢復,後台記錄失敗請求,定時重發。通常用於訊息通知操作。
forking cluster
並行呼叫多個伺服器,只要乙個成功即返回。通常用於實時性要求較高的讀操作,但需要浪費更多服務資源。可通過 forks=「2」 來設定最大並行數。
broadcast cluster
廣播呼叫所有提供者,逐個呼叫,任意一台報錯則報錯 [2]。通常用於通知所有提供者更新快取或日誌等本地資源資訊。
集群模式配置
按照以下示例在服務提供方和消費方配置集群模式
或
Dubbo 集群容錯
在進行系統設計時候,不僅要考慮正常邏輯該如何走,還要考慮異常邏輯。dubbo中當服務消費方呼叫服務提供方的服務出現錯誤時候,提供了多種容錯方案,預設為 failover 重試。重試。當服務消費方呼叫服務提供者失敗後自動切換,重試其它服務提供者。這通常用於讀操作或者具有冪等的寫操作,需要注意的是重試會...
dubbo 集群容錯
在收到提供者執行的結果時,當結果處理失敗時,需要對其進行處理。在reference中,返回的invoker是根據對應的容錯機制生成的invoker spi failovercluster.name public inte ce clusterpublic class failovercluster ...
Dubbo 集群容錯
二.dubbo集群容錯模式 三.cluster介面及實現類結構圖 四.原始碼解析 4.其它模式 參考原始碼 五.實現自定義cluster 六.使用自定義cluster 這裡不是使用所有服務提供者初始化invoked物件,只是使用了指定長度初始化空的list陣列 list invoked newarr...