javajava经典算法100例问题・_・?

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

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

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

思路:用小根堆来实现时间复雜度是O(nlgK),而且内存消耗是 K。时间复杂度消耗在代码中aaa 处

我要回帖

更多关于 java经典算法100例 的文章

 

随机推荐