Dubbo有哪几种负载均衡策略,默认是哪种?
4种负载均衡策略,详细如下:
模式 | 说明 | |
---|---|---|
随机模式 (默认) | Random LoadBalance | 按权重设置随机概率。在一个截面上碰撞的概率较高,但调用越大分布越均匀 |
轮询模式 | RoundRobin LoadBalance | 按公约后的权重设置轮询比例。但存在响应慢的服务提供者会累积请求 |
最少活跃调用数 | LeastActive LoadBalance | 最少活跃调用数。响应快的提供者接受越多请求,响应慢的接受越少请求 |
一致hash | ConsistentHash LoadBalance | 根据服务提供者ip设置hash环,携带相同的参数总是发送的同一个服务提供者,若服务挂了,则会基于虚拟节点平摊到其他提供者上 |
调用方单独配置:
java@Controller @RequestMapping("user") public class UserController { @Reference(loadbalance="roundrobin") private IUserService userService; @RequestMapping("hello") @ResponseBody public String hello(){ return userService.hello(); } }
1
2
3
4
5
6
7
8
9
10
11统一配置
- 方式一
dubbo: provider: loadbalance: roundrobin
1
2
3 - 方式二
<dubbo:referenceinterface="..."loadbalance="roundrobin" />
1
- 方式一