dubbo负载均衡策略

在集群负载均衡时,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:service
interface
=
"..."
loadbalance
=
"roundrobin"
/>

或:
<
dubbo:reference
interface
=
"..."
loadbalance
=
"roundrobin"
/>

或:
<
dubbo:service
interface
=
"..."

<
dubbo:method
name
=
"..."
loadbalance
=
"roundrobin"
/>

</
dubbo:service

一般在实际项目我们配置权重或负载均衡时不在代码中写死,我们动态使用默认配置,需要调节时通过dubbo管控台上进行配置
或:
<
dubbo:reference
interface
=
"..."

<
dubbo:method
name
=
"..."
loadbalance
=
"roundrobin"
/>

</
dubbo:reference

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【摘要】 面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器...
    静修佛缘阅读 4,610评论 0 24
  • 摘要:面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采...
    layjoy阅读 13,874评论 3 93
  • 心太软的人快乐是不容易的,别人伤害她或她伤害别人都让她在心里病一场。《陆犯焉识》 自问:内心强大的人反而更容易快乐...
    静然说秩序生活阅读 508评论 0 0
  • 多年的等待 只为一日的盛开 许多的无奈 不如从头再来 如果你不明白 时间会把你淘汰 不要轻易相信未来 请珍惜现在 ...
    文展阅读 299评论 2 2
  • 能牵挂是幸运,被牵挂是幸福,希望你一切安好,无论怎样,你愿回眸,就能看到我一直在你身后…… 摄影条件和水平都很有限...
    何时再出发阅读 158评论 2 0