dubbo入門(3)——負載均衡

一.四種負載均衡策略

    dubbo源碼提供了四種負載均衡的策略,默認爲random隨機調用。負載均衡

    1.RandomLoadBalance

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

    2.RoundRobinLoadBalance

  • 輪循,按公約後的權重設置輪循比率。
  • 存在慢的提供者累積請求問題,好比:第二臺機器很慢,但沒掛,當請求調到第二臺時就卡在那,長此以往,全部請求都卡在調到第二臺上。

    3 .LeastActiveLoadBalance

  • 最少活躍調用數,相同活躍數的隨機,活躍數指調用先後計數差。
  • 使慢的提供者收到更少請求,由於越慢的提供者的調用先後計數差會越大。

    4.ConsistentHashLoadBalance

  • 一致性Hash,相同參數的請求老是發到同一提供者。
  • 當某一臺提供者掛時,本來發往該提供者的請求,基於虛擬節點,平攤到其它提供者,不會引發劇烈變更。

二.配置

    負載均衡的方式能夠在消費端配置,也能夠在服務端配置,配置屬性loadbalance便可。dom

    1.在消費端配置

<dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" loadbalance="roundrobin"/>

     2.在服務端配置

<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" loadbalance="roundrobin"/>

     3.監控管理平臺上配置

三.測試結果

    採用消費端配置負載均衡方式。測試

    隨機方式spa

<dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" loadbalance="random"/>

    打印結果源碼

輪詢方式ast

<dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" loadbalance="roundrobin"/>

輸出結果監控

最少活躍調用方式擴展

<dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" loadbalance="leastactive"/>

一致性Hash方式---相同參數的請求老是發到同一提供者配置

 

  能夠去了解下源碼實現以及自定義擴展策略dubbo

相關文章
相關標籤/搜索