之前项目中曾使用一致性 Hash 路由请求至指定的缓存节点,关于 Dubbo 的一致性 Hash 实现可以参考 Dubbo 一致性Hash负载均衡实现剖析,源码参见 ConsistentHashLoadBalance.java at dubbo-3.0.0。其 hash 值与 Invoker 的映射关系采用 TreeMap
作为底层的数据结构,其根据当前调用查询调用者的源码如下:
1 | private final TreeMap<Long, Invoker<T>> virtualInvokers; |