用韩信三技能,讲清楚一致性哈希


刘邦:“你觉得我可以带兵多少?” 韩信:“最多十万。” 刘邦不解的问:“那你呢?” 韩信自豪地说:“越多越好,多多益善嘛!
刘邦:韩将军,你看这些士兵怎么分配好呢? 韩信:这还不简单,我的一技能就能搞定。

一技能:哈希算法
分组
哈希算法:将士兵的编号 num 值当做一个哈希值,再和总做小组数 N 做取余操作,得出的结果在 0 到 N - 1 之间,这个士兵就属于那个组。
查找士兵
哈希分组弊端
韩将军真是厉害。 哈希算法看起来很完美,那我再给你五百士兵,需要分成四个组怎么办?
这还不简单,再用 4 取余不就好了吗?
这个方案可行,但很多士兵都被重新分组了,刚刚建立的团队友情就被分解了。
主公,您说得没错,这就是我的一技能的 弱点所在。不过我还有一个技能: 一致性哈希。

二技能:一致性哈希
哈希环
哈希算法:对节点的数量进行取模运算。 一致性哈希算法:对 2^32 进行取模运算。
哈希环。2^32 的哈希环中。三个组一共将整个环分成了三个区域,C-A(第一组)、A-B(第二组)、B-C(第三组)。如下图所示:
第一组负责存储落在 C-A 区间内的数据。 第二组负责存储落在 A-B 区间内的数据。 第三组负责存储落在 B-C 区间内的数据。
士兵分配


增加分组



迁移到 D 节点。不愧是大将军,萧何当时月下追你,值了!
哈希环缺陷
将军,你这个哈希环上的节点分布 不太均匀啊,你看第三组和第四组的的区域好小啊。
你说得没错,不过我还有一个技能, 虚拟节点映射。

三技能:虚拟节点

萧何看了韩信的三技能后,直呼:妙哉妙哉!
总结
哈希算法会带来增加或删除节点时,数据迁移量太大的问题。 一致性哈希算法降低了数据迁移量。 节点较少,哈希环上每个节点实际占据的区间大小不一,最终导致业务对节点的访问冷热不均。 引入虚拟节点映射解决了分布不均问题。 节点越多时,使用哈希算法时,需要迁移的数据就越多,而使用一致性哈希算法,迁移的数据就越少。 一致性哈希算法本质上是一种路由寻址算法,适合简单的路由寻址场景。 一致性哈希算法常用在负载均衡的架构设计中。

福 利
CSDN给大家发压岁钱啦!
2月4日到2月11日每天上午11点
价值198元的芒果TV年卡,价值99元的CSDN月卡!现金红包,CSDN电子书月卡等奖品大放送!百分百中奖!
更多精彩推荐
?英超引入 AI 球探,寻找下一个足球巨星
?三年投 1000 亿,达摩院何以仗剑走天涯?
?程序员硬核“年终大扫除”,清理了数据库 70GB 空间
?2021年浅谈多任务学习
点分享 点收藏 点点赞 点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 中央经济工作会议在北京举行 7904175
- 2 紧急提醒:请在日中国公民进行登记 7808928
- 3 中央定调明年继续“国补” 7712205
- 4 “九天”无人机成功首飞 7617530
- 5 断崖式降温!今冬最强寒潮来了 7522949
- 6 中央经济工作会议释信号:3件事不做 7427277
- 7 中国“空中航母”首飞成功 7332454
- 8 电子体温计没水银体温计准?医生解答 7232302
- 9 人民空军中日双语发文:大惊小怪 7136546
- 10 寒潮来袭 “速冻”模式如何应对 7045231












AI100
