一致性hash学习

原理

hash值是个环形空间

  • hash算法
  • 值域,32或64位

对象映射到hash空间

hash(object 1) = key 1
...
hash(object n) = key n

node映射到hash空间

相同的hash算法
hash(node a) = key a
...
hash(node x) = key x

对象映射到node

  • hash(object) = key
  • 在hash环形空间上找到key对应的一点
  • 顺时针找node

node变动

减少节点

一些映射到原节点的对象迁移到下一对象

增加节点

一些映射到下一节点的对象迁移到新节点

虚拟节点

  • hash算法不一定均衡,特别在节点很少的情况
  • node里面有多个虚拟节点

你可能感兴趣的:(一致性hash学习)