Dubbo 负载均衡策略 配置教程

Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

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

随机均衡算法

权重轮循算法

最小活跃数算法

一致性hash算法

随机均衡算法 Random LoadBalance

随机,按照权重设置随机概率

调用量越大分布越均匀

权重轮循算法 RoundRobin LoadBalance

轮循,按照权重设置轮循比率

存在问题: 请求累积的问题,请求会累积在性能较差的机器上,导致响应时间慢。

解决办法:把性能差的机器,权重调低。

缺点:无法对机器性能在时间上的变化而做出动态改变,只能人工发现机器性能下降,手动调节权重。

最小活跃数算法 LeastActive LoadBalance

最小活跃调用数,相同活跃数的随机,活跃调用前后计算差值。

处理请求慢的机器将获得更小的调用量,以达到系统处理最大化。

优点:灵活,能够简单的根据调用数量动态调整机器处理的数量。

一致性hash算法 ConsistentHash LoadBalance

一致性hash,相同参数的请求总是发到同一提供者。

如果有一台生产者挂掉,基于虚拟节点,发往其机器的请求平摊到其它机器,不会引起剧烈抖动。

缺省只对第一个参数取hash,如果要修改配置。

缺省只有160个虚拟节点,如果要修改配置。

优点:更加灵活。

缺点:灵活导致难度大,由于粒度 细到单个请求上,一开始在开发时就得规划好,后期变动维护人员难度大。

配置方式

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

随机:loadbalance="random"

轮循:loadbalance="roundrobin"

最少活跃数:loadbalance="leastactive"

一致性Hash:loadbalance="consistenthash"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

$encoding

分享不容易,来个打赏吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值