轉至:匠心零度
說明
分佈式系統越來越多,很多概念都是通用的,涉及到分佈式的時候,集群的容錯就特別重要的,剛剛好偶然看到dubbo的集群容錯模式,覺得非常不錯,其高度抽象和總結,對於分佈式的系統都是適用的,特此拿來分享以及學習下。
分類
集群容錯一般有如下模式:
Failover Cluster
Failfast Cluster
Failsafe Cluster
Failback Cluster
Forking Cluster
Broadcast Cluster
Failover Cluster
失敗自動切換,當出現失敗,重試集群其它服務器 。通常用於讀操作,但重試會帶來更長延遲。一般都會設置重試次數。
Failfast Cluster
快速失敗,只發起一次調用,失敗立即報錯。通常用於非冪等性的寫操作,比如新增記錄。
Failsafe Cluster
失敗安全,出現異常時,直接忽略。通常用於寫入審計日誌等操作。
Failback Cluster
失敗自動恢復,後臺記錄失敗請求,定時重發。通常用於消息通知操作。
Forking Cluster
並行調用多個服務器,只要一個成功即返回。通常用於實時性要求較高的讀操作,但需要浪費更多服務資源。一般會設置最大並行數。
Broadcast Cluster
廣播調用所有提供者,逐個調用,任意一臺報錯則報錯。通常用於通知所有提供者更新緩存或日誌等本地資源信息。
結尾
集群容錯模式dubbo為我們總結了六種思路以及處理方式,個人覺得總結的很到位,各各場景可能性都包含了,每種場景都是一種思路,這些思路可以在我們後續學習思考以及項目中使用的,其抽象和總結真的非常到位,非常幫,學習了。
參考
Dubbo用戶手冊 :http://dubbo.apache.org/books/dubbo-user-book/
閱讀更多 java進階架構師 的文章