一致性哈希是一种特殊的哈希算法,旨在解决分布式系统在节点增减时,传统取模哈希导致的映射关系大规模失效问题。
核心原理:哈希环 (Hash Ring)
将整个哈希空间(如 )首尾相接组织成一个虚拟的圆环:
- 节点映射:将物理节点哈希后放置在环上的特定位置。
- 数据映射:将数据的 Key 哈希后映射到环上,按顺时针方向寻找遇到的第一个节点进行存储。
动态扩缩容
一致性哈希能将节点变动的影响限制在局部:
- 影响范围:仅影响该节点与其逆时针方向前一个节点之间的数据。
- 迁移成本:在 个节点的系统中,平均只需迁移 的数据,避免了大规模数据迁移导致的缓存雪崩。
虚拟节点 (Virtual Nodes)
针对物理节点在环上分布不均导致的数据倾斜问题,引入虚拟节点:
- 一个物理节点对应多个虚拟节点分散在环上。
- 提升负载均衡,使数据在节点间分布更均匀。