dubbo的集群负载均衡策略有多种,默认使用random随机调用方式,下面简单介绍下
- Random
- 随机模式,可按权重设置概率
RoundRobin
- 轮询模式,按公约后的权重设置轮询比率
- 如果有一台机器很慢,会导致请求的堆积,极端情况下所有的请求都卡在这台机器上
LeastActive
- 最少活跃调用数,调用数一样多的机器随机调用
- 处理速度慢的机器分配到的请求会减少
ConsistentHash
- 一致性Hash,相同参数的请求总是发到同一个provider机器上
- 当某一个机器挂时,原本发到这的请求,基于虚拟节点,会平摊到其他机器上
- 默认只对第一个参数Hash,可以通过修改配置
<dubbo:parameter key="hash.arguments" value="0,1" />
- 默认使用160份虚拟节点,如果要修改,可配置
<dubbo:parameter key="hash.nodes" value="300"/>
配置
- 服务端
<dubbo:service interface="..." loadbalance="roundrobin" />
- 消费端
<dubbo:reference interface="..." loadbalance="roundrobin" />
网友评论