一致性哈希算法 JAVA 实现(用于分布式)
网上找了那么多文章,都是一致性hash算法的原理,居然一个完全用JAVA实现的版本都没有。好吧不多说,直接上代码。
运行结果 :
服务器 D----2630个
服务器 A----2453个
服务器 B----2340个
服务器 C----2577个
------- remove A服务器
服务器 D----3489个
服务器 B----3107个
服务器 C----3404个
------- add E服务器
服务器 D----2572个
服务器 E----2469个
服务器 B----2361个
服务器 C----2598个
------- add F服务器 业务量加倍
服务器 D----4011个
服务器 E----4050个
服务器 F----3848个
服务器 B----3956个
服务器 C----4135个
numberOfReplicas 是虚拟服务器系数, 越大分布越均衡,但越大,在初始化和变更的时候效率差一点。 测试中,设置200基本就均衡了。