Dubbo負載均衡策略


本文參考: 龍果學院:http://www.roncoo.com/details?cid=85d6008fe77c4199b0cdd2885eaeee53

在集群負載均衡時,Dubbo提供了多種均衡策略,缺省為random隨機調用。

可以自行擴展負載均衡策略,參見:負載均衡擴展

Random LoadBalance

  • 隨機,按權重設置隨機概率。
  • 在一個截面上碰撞的概率高,但調用量越大分布越均勻,而且按概率使用權重后也比較均勻,有利於動態調整提供者權重。

權重加倍

 

 RoundRobin LoadBalance

  • 輪循,按公約后的權重設置輪循比率。
  • 存在慢的提供者累積請求問題,比如:第二台機器很慢,但沒掛,當請求調到第二台時就卡在那,久而久之,所有請求都卡在調到第二台上。

解決辦法 :結合權重,把第二台機(性能低的)的權重設置低一點

LeastActive LoadBalance
  • 最少活躍調用數,相同活躍數的隨機,活躍數指調用前后計數差。
  • 使慢的提供者收到更少請求,因為越慢的提供者的調用前后計數差會越大。

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:serviceinterface="..."loadbalance="roundrobin"/>

或:

<dubbo:referenceinterface="..."loadbalance="roundrobin"/>

或:

<dubbo:serviceinterface="...">

    <dubbo:methodname="..."loadbalance="roundrobin"/>

</dubbo:service>

一般在實際項目我們配置權重或負載均衡時不在代碼中寫死,我們動態使用默認配置,需要調節時通過dubbo管控台上進行配置

或:

<dubbo:referenceinterface="...">

    <dubbo:methodname="..."loadbalance="roundrobin"/>

</dubbo:reference>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM