一致性哈希(散列)

名词解释

此数据算法在 1997 年由麻省理工学院提出,是一种特殊的哈希算法,在移除或者添加一个哈希槽时,能够尽可能小地改变已存在的键与槽之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表(Distributed Hash Table,DHT)中存在的动态伸缩等问题。

LeanCloud 解读

在后端一般会遇到这样的场景:随着系统的访问量或者数据存储量增大,就会造成服务器响应延迟甚至宕掉的情况。

增加服务器

为了解决上述问题我们需要通过分布式缓存将数据均衡、有序的分布在各个服务器上。

但当服务器增加时,取模余数发生改变导致访问服务器编号发生改变,程序无法正常访问,缓存失效,造成缓存雪崩。

Hash 环

这时候可以通过一致性哈希解决哈希算法缺陷问题,通过算法取模将服务器 A、B、C、D 映射到 0~2^32 的圆上(值域),同样方式将数据 01、02 也映射到圆上,遇到的第一个服务器即为图片缓存位置,当你增加/减少机器时,其他机器在环上的位置并不会发生改变,有效避免了缓存雪崩的情况。

参考资料:

7分钟视频详解一致性hash 算法

分布式系统:一致性hash算法的应用

评论

Loading comments ...