容錯的概念可參看:
所謂容錯機制,舉個簡單例子,我們在使用電腦的某個程式時,常常會遇到「程式無反應」或「程式未響應」的情況發生,此時這個程式便不能在進行下去,但經常會在過了幾秒鐘後恢復到正常使用的狀態。這種「無反應」或「未響應」幾秒鐘的錯誤狀態,我們便稱之為「容錯」。
在分布式系統中常常各個系統之間是乙個鏈路的呼叫過程,如果鏈路中的某個節點出現故障,很可能會發生雪崩效應。
比如如果node3節點發生故障會導致整個分布式系統不可用,這個是不能容忍的。首先設計的時候應用系統之間肯定是要進行隔離,同時也需要有相應的容錯機制。
dubbo一共提供了六種容錯機制,可以在client端呼叫的時候進行設定:
failover cluster(預設)
失敗自動切換,當出現失敗,重試其它伺服器。通常用於讀操作,但重試會帶來更長延遲。可通過retries="2"
來設定重試次數(不含第一次,預設為2次)。
重試次數配置如下:
或
或
failfast cluster快速失敗,只發起一次呼叫,失敗立即報錯。通常用於非冪等性的寫操作,比如新增記錄。
failsafe cluster
失敗安全,出現異常時,直接忽略。通常用於寫入審計日誌等操作。
failback cluster
失敗自動恢復,後台記錄失敗請求,定時重發。通常用於訊息通知操作。
forking cluster
並行呼叫多個伺服器,只要乙個成功即返回。通常用於實時性要求較高的讀操作,但需要浪費更多服務資源。可通過forks="2"
來設定最大並行數。
broadcast cluster
廣播呼叫所有提供者,逐個呼叫,任意一台報錯則報錯。通常用於通知所有提供者更新快取或日誌等本地資源資訊。
一般查詢操作會使用failover,事務請求會使用failfast。
配置方式很簡單:
dubbo容錯機制
dubbo容錯策略 failover cluster 模式 1.失敗自動切換,當出現失敗,重試其它伺服器。預設 2.通常用於讀操作,但重試會帶來更長延遲。3.可通過retries 2 來設定重試次數 不含第一次 failfast cluster 快速失敗,只發起一次呼叫,失敗立即報錯。通常用於非冪等...
Dubbo容錯機制
一 容錯機制 1 failover cluster 預設 失敗自動切換,當出現失敗,重試其它伺服器。通常用於讀操作,但重試會帶來更長延遲。2 failfast cluster 快速失敗,只發起一次呼叫,失敗立即報錯。通常用於非冪等性的寫操作,比如新增記錄。3 failsafe cluster 失敗安...
dubbo的負載容錯機制
摘自部落格 dubbo提供了多種容錯方案,預設模式為failover,也就是失敗重試。1 failover cluster 失敗重試 當服務消費方呼叫服務提供者失敗後自動切換到其他服務提供者伺服器進行重試。這通常用於讀操作或者具有冪等的寫操作,需要注意的是重試會帶來更長延遲。可通過 retries ...