一致性哈希算法
概述
分布式哈希表中简单哈希通过
node = hash(k) % N
计算,一致性哈希旨在解决简单哈希在动态伸缩时产生的大量数据迁移,使用尽可能小的代价修复已存在的映射关系。具体实现
与简单哈希不同,一致性哈希对 2^32 取模形成哈希环。分别对节点和数据进行这样的操作后,数据顺时针旋转就能找到其对应的节点。
当有点失效时,就只需要迁移该节点中的数据到下一个节点即可。
这样的算法不能保证节点在哈希环上分布均匀,尤其是节点数据比较少时,可能会有大部分的数据落在同一节点上。因此可以把一个物理节点换成多个虚拟节点,来保证数据相对均匀。