Dubbo 负载均衡配置

Dubbo 负载均衡配置

Dubbo 提供了4种负载均衡实现,分别是基于权重随机算法RandomLoadBalance、基于最少活跃调用数算法LeastActiveLoadBalance、基于 hash 一致性ConsistentHashLoadBalance,以及基于加权轮询算法RoundRobinLoadBalance

dubbo默认使用的是RandomLoadBalance算法

配置

服务端服务级别

可用参数

  • random

  • roundrobin

  • leastactive

  • consistenthash

  1. XML配置方式

    <dubbo:service interface="..." loadbalance="roundrobin" />
    
  2. yml配置(SpringBoot)

    dubbo:
      provider:
        loadbalance: roundrobin
        # weight: 10 # 配置权重
    
  3. 基于注解的配置(SpringBoot)

    @DubboService(protocol = "dubbo", loadbalance = "random")
    public class TestDubboServiceImpl implements TestDubboService {
        @Override
        public String getString() {
            return "这是Service-Provider-A, 通过Dubbo返回的字符串";
        }
    }
    

客户端服务级别

XML配置方式

<dubbo:reference interface="..." loadbalance="roundrobin" />

yml配置(SpringBoot)

dubbo:
  provider:
    loadbalance: roundrobin
    # weight: 10 # 配置权重

基于注解的配置(SpringBoot)

具体可以查看注解:@DubboReference

@RestController
public class TestController {

    @DubboReference(loadbalance = "roundrobin")
    TestDubboService testDubboService;

    @GetMapping("/str")
    public String setting() {
        log.info("消费者, str 接口");
        String res =  testDubboService.getString();
        log.info("消费者, str 接口, 返回结果:{}", res);
        return res;
    }
}

版权声明:本文为xiupengfei111原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。