4、负载均衡策略

dubbo的负载均衡有4种,默认的是random loadBalance。

random loadbalance:按权重随机调用。如果所有的权重都一样,则随机调用。否则按照权重之和取随机数。 根据权重之和生成一个随机数,然后和具体的服务实例的权重相减做偏移量,然后取权重小于0的。 比如随机数为10,某一个服务实例的权重是12,10-12<0,那么该服务实例被调用。

roundrobin LoadBalance轮询,按公约后的比例来设置轮询比例。存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
LeastActive LoadBalance:最少活动调用数。活动数最小的优先调用。后台对每个要调用的方法维护了一个活动数active,然后从多个Invoker中找出活动数最小的Invoker集合,如果Invoker设置了权重且值不一样,则根据权重总和生成一个随机数,和每个Invoker的权重相减做偏移量,如果小于等于0,则调用该Invoker,否则随机调用
ConsistentHash LoadBalance:一致性hash,相同参数的请求总是会发到同一提供者。
缺省只对第一个参数 Hash,如果要修改,请配置 <dubbo:parameter key=“hash.arguments” value=“0,1” />,例如调用方法invoke(String s1,String s2); 若hash.arguments为1(默认值),则仅取invoke的参数1(s1)来生成hashCode
缺省用 160 份虚拟节点,如果要修改,请配置 <dubbo:parameter key=“hash.nodes” value=“320” />

示例:
<dubbo:service interface="…" loadbalance=“roundrobin” />
<dubbo:reference interface="…" loadbalance=“roundrobin” />

<dubbo:service interface="…">
<dubbo:method name="…" loadbalance=“roundrobin”/>
</dubbo:service>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值