一致性Hash算法的作用

这里不介绍一致性Hash算法的原理,后面再补充,可以先看下面的文档:

什么是一致性Hash算法?

                                           一致性Hash算法的作用_第1张图片

该算法的原理用一句话将就是将服务器节点分布到一个环上,必要时需要增加虚拟节点(映射到真实节点),查找的时候根据Hash算法定位到环上的某个点,然后再顺时针找到最近的一个可用的服务器节点。(图片来自上面的链接,侵删)

一致性Hash算法的作用就是,使服务器失效或者新增时的影响范围达到最小。如果按照一般的直接根据服务器数量索引的,假设有4个服务器,两个用户ID分别为3和9,此时索引到的服务器为3号和1号。某个时候2号服务器失效,则用户将都被索引到原来的0号服务器,而该服务器是没有这两个用户的数据缓存的,就需要重新请求了。使用这种Hash方式,绝大部分情况下服务器失效或者新增都会导致用户被映射到不一样的服务器上,这样子就会导致所有用户均重新请求数据,从而导致缓存雪崩。而一致性Hash算法能够使的服务器失效或者新增只影响到这台服务器及其前面的一台服务器的用户数据,因为用户ID是顺时针找最近的服务器节点的。

你可能感兴趣的:(algorithms)