一致性哈希

Hash取模

缺点

  • 节点出现宕机,哈希需要重新调整,数据迁移较多,缓存场景会出现缓存击穿,甚至缓存雪崩
  • 节点扩容,哈希需要重新调整,问题同上

一致性哈希算法

基本思想

固定N,避免了N的变动

  • Karger的一致性哈希算法将N设置为2^32,形成了一个0~(2^32-1)的哈希环,也就是相当于普通Hash取模时N=2^32。
  • 将服务器结点也作为一种key分发到哈希环上,顺时针方法实现结点对哈希环shard的归属
  • 引入虚拟节点,解决一致性哈希的数据倾斜

增加节点

部分数据需要迁移到新增节点和其虚拟节点上

删除节点

删除节点及其虚拟节点,顺时针迁移到下一个实体结点或者虚拟结点。

应用

Redis cluster 拥有固定的16384个slot,slot是虚拟的且被分布到各个master中,当key 映射到某个master 负责slot时,就由对应的master为key 提供服务。

参考

https://zhuanlan.zhihu.com/p/92742908


   转载规则


《一致性哈希》 wangyixin-tom 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
研发效能 研发效能
概念更高效、更高质量、更可靠、可持续地交付更优的业务价值 更高效:价值的流动过程必须高效顺畅,阻力越小越好。 更高质量:如果质量不行,流动越快,死的也会越快。 更可靠:安全性和合规性要保障好。 可持续:输出不能时断时续,小步快跑才是正道,
2021-08-15
下一篇 
linux优化方法 linux优化方法
CPU高cpu占用率的进程和线程top # 查看高CPU进程 top -H -p pid # 查看高CPU线程 CPU占用资源低但是系统响应速度很慢可能是什么问题等待磁盘I/O完成的进程过多,导
2021-07-08
  目录