https://crossoverjie.top/2018/01/08/Consistent-Hash/

解决的问题主要是比如100个服务应对2000个客户端的问题,如何将客户端均分到服务中,通常想到的Hash方法,但是有本身的缺陷

弹缩的时候,其他节点也需要变化,应该太大了,如果降低影响,提出了一种Hash一致性算法

即扩大hash的数组大小,留空白出来,如果新增,就直接加到对应的空白,如果删除,直接影响的节点很少。

 

节点较少会不均匀,为了解决这个问题,增加虚拟节点,

为了解决这个问题,一致哈希算法引入了虚拟节点。将每一个节点都进行多次 hash,生成多个节点放置在环上称为虚拟节点:

计算时可以在 IP 后加上编号来生成哈希值。
这样只需要在原有的基础上多一步由虚拟节点映射到实际节点的步骤即可让少量节点也能满足均匀性。

 

posted on 2021-11-02 15:33  redman274  阅读(21)  评论(0编辑  收藏  举报