Dubbo服務叢集,常見容錯機制:failover ,failsafe,failfase ,failback,forking
阿新 • • 發佈:2018-12-25
http://blog.csdn.net/hongweigg/article/details/52925920
http://m.blog.csdn.net/article/details?id=51137364
<dubbo:reference cluster="failfast" />
常見容錯機制:failover ,failsafe,failfase ,failback,forking,來源於阿里的定義。
- Failover 失敗自動切換
當出現失敗,重試其它伺服器,通常用於讀操作(推薦使用)。 重試會帶來更長延遲。
- Failfast 快速失敗
只發起一次呼叫,失敗立即報錯,通常用於非冪等性的寫操作。 如果有機器正在重啟,可能會出現呼叫失敗 。
- Failsafe 失敗安全
出現異常時,直接忽略,通常用於寫入審計日誌等操作。 呼叫資訊丟失 可用於生產環境 Monitor。
- Failback 失敗自動恢復
後臺記錄失敗請求,定時重發。通常用於訊息通知操作 不可靠,重啟丟失。 可用於生產環境 Registry。
- Forking 並行呼叫多個伺服器
只要一個成功即返回,通常用於實時性要求較高的讀操作。 需要浪費更多服務資源 。
- Broadcast
廣播呼叫,所有提供逐個呼叫,任意一臺報錯則報錯。通常用於更新提供方本地狀態 速度慢,任意一臺報錯則報錯 。
在實際專案中,生產環境中,我們用failover模式時可以這樣設計服務介面,遵循介面隔離原則 ,查詢服務與寫操作服務隔離,
查詢介面我們可以配置retries="2"
在寫操作介面我們配置retries="0" ,如果不設定為0, 超時,會重新連線,會出現重複寫的情況,所以使用failover模式時,我們要進行讀寫操作介面隔離,且寫操作介面retries=0