dubbo的负载均衡机制原理上来说是客户端负载均衡,也就是dubbo消费者客户端根据服务提供者列表进行算法分配,来选择调用的服务端。
1.dubbo 默认使用 Random LoadBalance -随机-
- dubbo提供的四种负载均衡策略
随机 Random LoadBalance
轮询 RoundRobin LoadBalance
最少活跃调用数(权重)LeastActive LoadBalance
活跃数指调用前后计数差,优先调用高的,相同活跃数的随机。使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
一致性Hash ConsistentHash LoadBalance
3.配置
- dubbo提供的几种配置级别
服务端服务级别
<dubbo:service interface="..." loadbalance="roundrobin" />
客户端服务级别
<dubbo:reference interface="..." loadbalance="roundrobin" />
服务端方法级别
<dubbo:service interface="...">
<dubbo:method name="..." loadbalance="roundrobin"/>
</dubbo:service>
客户端方法级别
<dubbo:reference interface="...">
<dubbo:method name="..." loadbalance="roundrobin"/>
</dubbo:reference>
- 用注解来实现
服务端服务级别
@Service(version = "1.0.0",loadbalance="roundrobin",group="2",mock = "force:return null")
客户端服务级别
@Reference(version = "1.0.0",group="2",mock = "force:return null",loadbalance="roundrobin",check = false)
----------------dubbo的负载均衡,是在服务端客户端都可以。-------------------------------