在叢集負載均衡時,Dubbo 提供了多種均衡政策,預設為 random 随機調用。
負載均衡政策
1.Random LoadBalance
随機,按權重設定随機機率。
在一個截面上碰撞的機率高,但調用量越大分布越均勻,而且按機率使用權重後也比較均勻,有利于動态調整提供者權重。
2.RoundRobin LoadBalance
輪循,按公約後的權重設定輪循比率。
存在慢的提供者累積請求的問題,比如:第二台機器很慢,但沒挂,當請求調到第二台時就卡在那,久而久之,所有請求都卡在調到第二台上。
3.LeastActive LoadBalance
最少活躍調用數,相同活躍數的随機,活躍數指調用前後計數差。
使慢的提供者收到更少請求,因為越慢的提供者的調用前後計數差會越大。
請求來了之後,交給上次處理時間最少的那個伺服器。
4.ConsistentHash LoadBalance
一緻性 Hash,相同參數的請求總是發到同一提供者。
當某一台提供者挂時,原本發往該提供者的請求,基于虛拟節點,平攤到其它提供者,不會引起劇烈變動。算法參見:http://en.wikipedia.org/wiki/Consistent_hashing
預設隻對第一個參數 Hash,如果要修改,請配置 <dubbo:parameter key="hash.arguments" value="0,1" />
預設用 160 份虛拟節點,如果要修改,請配置 <dubbo:parameter key="hash.nodes" value="320" />
Dubbo(十六)--dubbo-高可用-ZooKeeper當機與Dubbo直連
像這個部落格裡的方式啟動3個服務提供者。
啟動消費者。發現,3号提供者列印了。關閉消費者,再啟動消費者,發現,通路的提供者是随機的。
http://dubbo.apache.org/zh-cn/docs/user/demos/loadbalance.html
修改一下負載均衡的政策:
經過測試,發現,确實是輪詢的通路3個服務提供者。
可以在控制台控制權重:
---------------------
版權聲明:本文為CSDN部落客「csdn_kenneth」的原創文章,遵循CC 4.0 by-sa版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/csdn_kenneth/article/details/82558357
轉載于:https://www.cnblogs.com/tuanz/p/11356623.html