1. 程式人生 > >Dubbo服務叢集,常見容錯機制:failover ,failsafe,failfase ,failback,forking

Dubbo服務叢集,常見容錯機制:failover ,failsafe,failfase ,failback,forking

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