Dubbo 的负载均衡策略?

Dubbo 面试题发布于

一、四种策略

  • Random(默认):随机,按权重加权随机。
  • RoundRobin:轮询,按权重轮询,慢的 Provider 会累积请求。
  • LeastActive:最少活跃调用,慢的 Provider 收到更少请求。
  • ConsistentHash:一致性哈希,相同参数请求到同一 Provider。

二、配置

@DubboReference(loadbalance = "random")
private UserService userService;

或服务端配置:

@DubboService(loadbalance = "leastactive")
public class UserServiceImpl implements UserService {}

三、权重

通过 weight 参数调整,动态调节负载。LeastActive + 权重是生产常用组合,避免慢节点拖垮。

四、集群容错

  • failover(默认):失败重试,默认 2 次。
  • failfast:快速失败,只调一次。
  • failsafe:安全失败,忽略异常。
  • failback:异步重试,适合通知。
  • forking:并行调多个,取第一个成功。