dubbo 集群容錯

2021-09-29 15:24:32 字數 954 閱讀 7708

在集群呼叫失敗時,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...