一致性哈希算法出现哈希碰撞时的可行处理方案有哪些?
一致性哈希的哈希碰撞处理方案
这属于一致性哈希(consistent hashing)的实现细节,理想情况下,使用N台服务器和K个哈希函数时,哈希环上会均匀分布NK个节点。
针对多台服务器哈希值相互碰撞的问题,常见的处理方向分为两类:
- 直接忽略碰撞:该方案大概率不可行,极端情况下,单台服务器对应的全部K个哈希值都可能被其他服务器覆盖,会引发负载严重倾斜、节点服务范围被完全挤占的问题。
- 采用特定的冲突解决机制:参考哈希表的冲突处理逻辑,可以使用类似开放寻址的方案,碰撞发生时将当前节点顺延到哈希环上第一个未被占用的位置即可,既不会破坏哈希环原有分布的均匀性,也能保证所有服务器的虚拟节点都成功落环。
内容的提问来源于stack exchange,提问作者watashiSHUN
相关产品推荐
相关产品推荐

