dubbo容錯機制和負載均衡
dubbo在客戶端實現容錯機制和負載均衡
1.dubbo容錯機制的種類
Failover Cluster:失敗自動切換,當出現失敗,重試其它伺服器 。
通常用於讀操作,但重試會帶來更長延遲。可通過 retries="2" 來設定重試次數(不含第一次)。
叢集配置如下:
<dubbo:service cluster="failover" retries="3"/>或<dubbo:reference cluster="failover" retries="3"/>
Failfast Cluster:快速失敗,只發起一次呼叫,失敗立即報錯。
通常用於非冪等性的寫操作,比如新增記錄。
<dubbo:service cluster="failfast" />或<dubbo:reference cluster="failfast" />
Failsafe Cluster:失敗安全,出現異常時,直接忽略。
通常用於寫入審計日誌等操作。
<dubbo:service cluster="failsafe" />或<dubbo:reference cluster="failsafe" />
Failback Cluster:失敗自動恢復,後臺記錄失敗請求,定時重發。
通常用於訊息通知操作。
<dubbo:service cluster="failback" />或<dubbo:reference cluster="failback" />
Forking Cluster:並行呼叫多個伺服器,只要一個成功即返回。
通常用於實時性要求較高的讀操作,但需要浪費更多服務資源。可通過 forks="2" 來設定最大並行數。
<dubbo:service cluster="forking" forks="2"/>或<dubbo:reference cluster="forking" forks="2"/>
2.負載均衡策略
Random LoadBalance
隨機,按權重設定隨機概率。
在一個截面上碰撞的概率高,但呼叫量越大分佈越均勻,而且按概率使用權重後也比較均勻,有利於動態調整提供者權重。
RoundRobin LoadBalance
輪循,按公約後的權重設定輪循比率。
存在慢的提供者累積請求問題,比如:第二臺機器很慢,但沒掛,當請求調到第二臺時就卡在那,久而久之,所有請求都卡在調到第二臺上。
解決辦法 :結合權重,把第二臺機(效能低的)的權重設定低一點。
LeastActive LoadBalance
最少活躍呼叫數,相同活躍數的隨機,活躍數指呼叫前後計數差。
使慢的提供者收到更少請求,因為越慢的提供者的呼叫前後計數差會越大。
ConsistentHash LoadBalance
一致性Hash,相同引數的請求總是發到同一提供者。
當某一臺提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引起劇烈變動。
<dubbo:service interface=".." loadbalance="roundrobin"></dubbo:service> loadbalance值為負載的策略(注意小寫)
或
<dubbo:reference interface="..."loadbalance="roundrobin"/>
或
<dubbo:service interface="...">
<dubbo:method name="..."loadbalance="roundrobin"/>
</dubbo:service>
或
<dubbo:reference interface="...">
<dubbo:method name="..."loadbalance="roundrobin"/>
</dubbo:reference>
參考部落格:https://www.cnblogs.com/markcd/p/8504674.html
這篇部落格基本上算是照抄別人搞出來的,寫到最後實在是沒有精氣神再寫下去了,dubbo從開始接觸到現在已經三年了,為什麼要寫dubbo原始碼,因為這是我心中的一個夙願,總算把它弄出來了,估計以後也不會有機會接觸dubbo,大家都用spring cloud的,後面也會開啟新的學習。
相關文章
- Java程式設計解密-Dubbo負載均衡與叢集容錯機制Java程式設計解密負載
- Dubbo與Zookeeper、SpringMVC整合和使用(負載均衡、容錯)SpringMVC負載
- dubbo叢集和負載均衡負載
- Dubbo學習筆記(四)叢集容錯與負載均衡筆記負載
- dubbo原始碼解析之負載均衡原始碼負載
- dubbo(三):負載均衡實現解析負載
- 深入剖析 RocketMQ 原始碼 - 負載均衡機制MQ原始碼負載
- HDFS 02 - HDFS 的機制:副本機制、機架感知機制、負載均衡機制負載
- Dubbo原始碼解析之負載均衡策略原始碼負載
- 服務發現與負載均衡機制-Service負載
- Dubbo原始碼分析(八)叢集容錯機制原始碼
- Dubbo 路由及負載均衡效能最佳化路由負載
- 阿里面試:Dubbo負載均衡有哪些策略?阿里面試負載
- 解密負載均衡技術和負載均衡演算法解密負載演算法
- Dubbo原始碼分析(九)負載均衡演算法原始碼負載演算法
- 【知識分享】四層負載均衡和七層負載均衡負載
- 代理和負載均衡概述負載
- 負載均衡和動態負載均衡分別是什麼?-VeCloud負載Cloud
- APACHE做負載均衡時出錯Apache負載
- Dubbo原始碼分析(四)Dubbo呼叫鏈-消費端(叢集容錯機制)原始碼
- 負載均衡負載
- kubernetes實踐之十三: 負載均衡機制Ingress負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- 全域性負載均衡與CDN內容分發負載
- RocketMQ 客戶端負載均衡機制詳解及最佳實踐MQ客戶端負載
- NGINX 負載均衡Nginx負載
- WebSocket負載均衡Web負載
- IP負載均衡負載
- 【Nginx】負載均衡Nginx負載
- nginx負載均衡Nginx負載
- 負載均衡是什麼?怎麼理解負載均衡的部署方式和工作原理負載
- 【Linux】叢集和負載均衡Linux負載
- Dubbo加權輪詢負載均衡的原始碼和Bug,瞭解一下?負載原始碼
- 6.原始碼分析---和dubbo相比SOFARPC是如何實現負載均衡的?原始碼RPC負載
- 負載均衡技術(一)———負載均衡技術介紹負載
- haproxy(單機)+mysql叢集負載均衡MySql負載
- 雙機熱備和負載均衡有什麼區別負載