概况

一致性hash算法这里就不描述。补充算法作用在虚拟节点和实际节点的映射上。算法保证,整个系统,无论哪些节点宕机,幸存节点的HASH空间还是均匀分配。

算法介绍

假设系统运行时最大节点数量为m,那整个HASH环,均匀分配m*(m-1)个虚拟节点。那这些节点怎么分配,能够达到算法目的?
先为每个物理节点编号,0、1、…、m-1
按逆时针顺序:
前m个虚拟节点分配给:0、1、…、m-1 计算公式:虚拟节点组内序号x1%m
第二组m个虚拟节点分配:0、2、4、…、1、3、5、 计算公式:虚拟节点组内序号x2%m

第m-1组m个虚拟序号分配:0、m-1、2x(m-1)%m、…、(m-1)x(m-1)%m 计算公式:虚拟节点组内序号x(m-1)%m

可以看图更直观,图中物理节点序号从1开始,和上面算法有些偏差。去掉任意1个节点、多个节点,剩余节点的HASH空间分配还是均匀。
一致性HASH算法完善

最后

太麻烦了,没用数学证明。希望对其他人有用,我也能获得快乐。

相关文章:

  • 2021-04-26
  • 2021-08-26
猜你喜欢
  • 2021-09-09
  • 2021-12-29
  • 2022-01-30
  • 2021-06-19
  • 2021-07-17
  • 2021-12-25
相关资源
相似解决方案