分布式RPC系統框架Dubbo 10集群容錯

2021-10-09 10:34:20 字數 1180 閱讀 7655

集群容錯指的是,當消費者呼叫提供者集群時發生異常的處理方案。

1.dubbo內建的容錯策略

dubbo內建了6種集群容錯策略。

(1) failover

故障轉移策略,預設容錯策略,需根據業務配置重試策略;當消費者呼叫提供者集群中的某個伺服器失敗時,其會自動嘗試著呼叫其它伺服器;該策略通常用於讀操作,例如,消費者要通過提供者從db中讀取某資料,但重試會帶來服務延遲。

(2) failfast

快速失敗策略,消費者端只發起一次呼叫,若失敗則立即報錯;通常用於非冪等性的寫操作,比如新增記錄。

冪等:在請求引數相同的前提下,請求一次與請求n次,對系統產生的影響是相同的。

(3) failsafe

失敗安全策略,當消費者呼叫提供者出現異常時,直接忽略本次消費操作;該策略通常用於執行相對不太重要的服務,例如,寫入審計日誌等操作(生產環境一般將日誌分為兩個大類,即活動日誌與審計日誌,活動日誌記錄所有生產操作,二審計日誌只記錄開發維護人員關注的非正常操作)。

(4) failback

失敗自動恢復策略,消費者呼叫提供者失敗後,dubbo會記錄此次失敗請求,然後定時自動重新傳送該請求;該策略通常用於實時性要求不太高的服務,例如訊息通知操作。

(5) forking

並行策略,消費者對於同一服務並行呼叫多個提供者伺服器,只要乙個成功即呼叫結束並返回結果;通常用於實時性要求較高的讀操作,但其會浪費較多伺服器資源。

(6) broadcast

廣播策略,廣播呼叫所有提供者,逐個呼叫,任意一台報錯則報錯;通常用於通知所有提供者更新快取或日誌等本地資源資訊。

2 配置集群容錯策略

容錯策略可以設定在消費者端,也可以設定在提供者端,若消費者與提供者均做了設定,則消費者端的優先順序更高。

(1) 設定重試次數

dubbo預設的容錯策略是故障轉移策略failover,即允許失敗後重試,可以通過如下方式來設定重試次數,注意設定的是重試次數,不含第一次正常呼叫。

a、提供者端設定

b、消費者端設定

(2) 容錯策略設定

a、提供者端

b、消費者端

類似dubbo的分布式RPC框架

模仿dubbo設計思路開發出來的一套分布式服務框架,本地測試通過,未經過生產環境測試,所以建議使用者經過嚴格測試或公升級後再考慮生產環境使用.發布出來是希望能給做這方面研究的人員參考,如果有問題還希望各位酌情拍磚.框架基於netty4實現socket通訊 基於apache curator實現zook...

分布式RPC系統框架Dubbo 07服務分組

1 建立提供者provider group step1 建立工程 提供者工程provider group,引入依賴。utf 8 1.8 1.8 4.3.16.release com.zxy 0 api 0.0.1 snapshot org.apache.dubbo dubbo 2.7.0 org.s...

Dubbo分布式服務系統

dubbo是alibaba開源的分布式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合 或者最大限度地鬆耦合 從服務模型的角度來看,dubbo採用的是一種非常簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象出服務提供方 provider ...