1. 程式人生 > >Dubbo之負載均衡( LoadBalance屬性)。

Dubbo之負載均衡( LoadBalance屬性)。

        在叢集負載均衡時,Dubbo提供了多種均衡策略,預設為random隨機呼叫。

Random LoadBalance

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

RoundRobin LoadBalance

  • 輪詢,按公約後的權重設定輪詢比率。
  • 存在慢的提供者類即請求問題,比如:第二臺機器很慢,但沒掛,當請求調到第二臺時就卡在那,久而久之,所有請求都卡在調到第二臺上。

LeastActive LoadBalance

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

ConsistentHash LoadBalance

  • 一致性Hash,相同引數的請求總是發到同一提供者。
  • 當某一臺提供者掛時,原本發往該提供者的請求,基於虛擬節點,平攤到其他提供者,不會引起劇烈變動。
  • 預設只對第一個引數Hash,如果要修改,請配置<dubbo:parameter key="hash.arguments" value="0,1" />
  • 預設用160份虛擬節點,如果要修改,請配置<dubbo:parameter key="hash.nodes" value="320" />

配置如下所示:

  • <dubbo:service inteface="..." loadbalance="roundrobin" />
  • <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>