十六:一致性哈希算法
十六: 一致性哈希算法
背景
一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,
解决的问题
目的是解决分布式缓存的问题。在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。
局限性
增加机器、减少机器会导致部分键失效。可以通过增加虚拟节点来最大减少损失,
当实际节点太少,加减机器会大范围影响哈希环中数据映射,因此这种不适合少数据
节点的分布式缓存方案。
算法解释
四个节点均匀的落在了换上,每一节点存缓存上一个节点到他之间的hash值的key。如计算hash在node2与node-3之间的范围的键,存储在node-3中。
此时添加了一个节点,在node-3与node4之间,那么node-3到node-5之间的键就失效了,所以一致性hash环的局限性增加减少机器会导致部分键失效,
所以一致性hash环的场景更适合与多节点,节点越多分布越均匀,造成失效键的范围就越小。