一致性哈希选址

在负载均衡阶段基于一致性哈希进行选址

特性说明

Dubbo 一致性Hash负载均衡实现剖析

使用场景

在有多台服务端的时候根据请求参数的进行一致性哈希散列选择服务端。

使用方式

配置一致性哈希的方式有很多,最常见的是:

注解配置

@DubboReference(loadbalance = “consistenthash”)

API 配置

referenceConfig.setLoadBalance(“consistenthash”);

Properties 配置

dubbo.reference.loadbalance=consistenthash

XML 配置

<dubbo:reference loadbalance=“consistenthash” />

默认采用第一个参数作为哈希 key,如果需要切换参数,可以指定 hash.arguments 属性

  1. ReferenceConfig<DemoService> referenceConfig = new ReferenceConfig<DemoService>();
  2. // ... init
  3. Map<String, String> parameters = new HashMap<String, String>();
  4. parameters.put("hash.arguments", "1");
  5. parameters.put("sayHello.hash.arguments", "0,1");
  6. referenceConfig.setParameters(parameters);
  7. referenceConfig.setLoadBalance("consistenthash");
  8. referenceConfig.get();

最后修改 December 16, 2022: Fix check (#1736) (97972c1)