【架构实践】一致性Hash算法原理图文详解 & 使用 golang 实现
文章目录
分布式系统中的一致性Hash算法具体是什么?
一致性哈希算法(Consistent Hashing Algorithm)是一种常用于分布式系统中数据分片的算法,它可以解决分布式系统中的负载均衡和容错问题。
一致性哈希算法的基本思想是将数据映射到一个环形空间中,然后将节点也映射到这个环形空间中。当需要处理一个数据时,先将这个数据映射到环形空间上,然后顺时针找到第一个节点,将数据存储在这个节点上。如果某个节点宕机了,那么它上面的数据就会被顺时针找到的下一个节点取代。
算法原理
一致性哈希算法在 1997 年由麻省理工学院提出,是一种特殊的哈希算法,在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系;
一致性哈希解决了简单哈希算法在 分布式哈希表(Distributed Hash Table,DHT)中存在的动态伸缩等问题。
一致性hash算法本质上也是一种取模算法 。
不过,不同于上边按服务器数量取模,一致性hash是对固定值2^32取模;