learning_notes

学习笔记

View project on GitHub

一致性哈希算法

参考

概念

一致性哈希算法

是一种分布式算法,常用于负载均衡,将整个哈希值空间组织成一个虚拟的圆环(0~2e32)

解决

余数分布式算法由于保存键的服务器会发生巨大变化而影响缓存的命中率

  • 容错性 (节点失效后,缓存无法命中)
  • 拓展性 (节点增加后,不改变哈希算法,无法使用,若改变,原缓存失效,数据库雪崩)

解决数据倾斜问题

数据倾斜

一致性哈希算法在服务节点太少时,容易因为节点分部不均匀而造成数据倾斜问题

为了解决这种数据倾斜问题,一致性哈希算法引入了虚拟节点机制,即对每一个服务节点计算多个哈希,每个计算结果位置都放置一个此服务节点,称为虚拟节点

通常将虚拟节点数设置为32甚至更大