引言:分布式系统中的数据分布难题

在分布式系统设计中,如何将大量数据或请求均匀分配到多个节点,是一个贯穿始终的核心问题。传统的取模哈希算法(hash(key) % node_count)虽然简单,但在动态扩缩容场景下会导致几乎全部数据重新映射,造成大规模数据迁移和缓存雪崩。

1997年,MIT的Karger等人提出了一致性哈希算法(Consistent Hashing),通过巧妙的哈希环结构,在节点增减时只影响相邻节点的数据,实现了单调性(Monotonicity)和最小迁移(Minimal Displacement)。

  • 单调性:节点添加时,现有键的映射只可能从旧节点迁移到新节点,而不会迁移到其他旧节点
  • 平衡性:每个节点承担大致相等数量的键
  • 分散性:不同客户端对同一键的视图一致

2. 哈希环数据结构

2.1 环空间设计

哈希环的核心思想是将哈希值空间组织成一个连续的圆环,范围从0到2^32-1(32位)或2^160-1(使用SHA-1时),首尾相接。


     点赞(0)
         打赏
    

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部