Dubbo负载均衡策略

2018年11月24日09:31:51 评论 361

Dubbo提供了多种负载均衡策略,缺省为random随机调用

  • 随机均衡算法
  • 权重轮循算法
  • 最小活跃数算法
  • 一致性hash算法

随机均衡算法 Random LoadBalance

随机,按照权重设置随机概率
调用量越大分布越均匀

权重轮循算法 RoundRobin LoadBalance

轮循,按照权重设置轮循比率
存在问题: 请求累积的问题,请求会累积在性能较差的机器上,导致响应时间慢。
解决办法:把性能差的机器,权重调低。
缺点:无法对机器性能在时间上的变化而做出动态改变,只能人工发现机器性能下降,手动调节权重。

最小活跃数算法 LeastActive LoadBalance

最小活跃调用数,相同活跃数的随机,活跃调用前后计算差值。
处理请求慢的机器将获得更小的调用量,以达到系统处理最大化。
优点:灵活,能够简单的根据调用数量动态调整机器处理的数量。

一致性hash算法 ConsistentHash LoadBalance

一致性hash,相同参数的请求总是发到同一提供者。
如果有一台生产者挂掉,基于虚拟节点,发往其机器的请求平摊到其它机器,不会引起剧烈抖动。
缺省只对第一个参数取hash,如果要修改配置。
缺省只有160个虚拟节点,如果要修改配置。
优点:更加灵活。
缺点:灵活导致难度大,由于粒度 细到单个请求上,一开始在开发时就得规划好,后期变动维护人员难度大。

配置方式

随机:loadbalance="random"
轮循:loadbalance="roundrobin"
最少活跃数:loadbalance="leastactive"
一致性Hashloadbalance="consistenthash"

最后更新:2019-04-03
weinxin
关于本站
本站是一个分享建站经验、SEO优化、互联网技术以及日常生活的个人生活博客。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: