Skip to content
目录概览

Dubbo有哪几种负载均衡策略,默认是哪种?

4种负载均衡策略,详细如下:

模式说明
随机模式 (默认)Random LoadBalance按权重设置随机概率。在一个截面上碰撞的概率较高,但调用越大分布越均匀
轮询模式RoundRobin LoadBalance按公约后的权重设置轮询比例。但存在响应慢的服务提供者会累积请求
最少活跃调用数LeastActive LoadBalance最少活跃调用数。响应快的提供者接受越多请求,响应慢的接受越少请求
一致hashConsistentHash 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