IT袋

当前位置:主页 > 经验教程 > 建站编程 >

什么是一致性hash算法

什么是一致性hash算法(3)

时间:2023-12-13 13:59:39 来源:IT袋 作者:马勇
导读:什么是一致性hash算法,不平衡问题 我们通过新增节点和删除节点,知道了该方式会影响该节点的顺时针的后一个节点,其他节点不受影响。 但是因为生成哈希值的分布并不是均

什么是一致性hash算法

什么是一致性hash算法

不平衡问题

我们通过新增节点和删除节点,知道了该方式会影响该节点的顺时针的后一个节点,其他节点不受影响。

但是因为生成哈希值的分布并不是均匀的,如下图新增k4、k5,如果节点B宕机了,k2和k4也迁移到节点C,导致那么大部分请求就落到节点C了,如果数量更多呢,此时会导致节点C压力陡增,这样就不均衡了!

什么是一致性hash算法

那如何解决这个问题呢?

那就是通过虚拟节点

虚拟节点

虚拟节点 可以理解为是作为实际节点的一个copy,多个虚拟节点映射一个实际节点,因为在哈希环上节点越多就分布的越均匀,即使我们现实中不会有那么多真实节点。

什么是一致性hash算法

上图中三个真实节点A、B、C,映射了9个虚拟节点,如果key值经过哈希落到临近A-1、A-2、A-3的虚拟节点,那么最终都将映射到真实节点A,你想如果虚拟节点再多点,是不是就会更均衡了!

假设真实节点A被移除,A对应虚拟节点也会移除,但是多虚拟节点方式可以映射更多真实节点,让剩余的节点更好得去承担节点变化的请求压力!

如下图:

什么是一致性hash算法

这里简单讲解一下,图中真实节点A被移除,那么对应的虚拟节点移除,那么此时k1的重新映射到C-1、k3重新映射到B-3,也就是说被迁移到真实节点B和C,由此可见节点被移除会被更均衡的分散到其他节点上。

图中只简单列举了几个虚拟节点,虚拟节点越多,相对会越均衡。

好了,今天关于一致性哈希算法的介绍就到这了!

上述就是什么是一致性hash算法的具体内容,未经IT袋网网(www.itdai.com)允许禁止转载!

相关阅读