分布式存储之一致性哈希算法
基本思想
一致性哈希算法(Consistency Hashing)是一种分布式存储算法,通过哈希环实现数据的均衡分布和高可用。主要特点是:
数据映射到一个0到2^32的哈希环上。
节点也映射到这个哈希环上。
每个数据通过哈希函数确定一个位置,定位到其顺时针方向第一台服务器节点上。
当新增或删除节点时,只影响相邻数据,大部分数据位置不变。
比如节点A映射到哈希环的30位置,节点B映射到70位置。数据X映射到40位置,按顺时针方向找到节点A,所以存储到A上。
如果新增节点C映射到50位置,只会影响40-50区间数据,其它数据位置不变,实现了高可用。
相比哈希取余,一致性哈希算法只需要重定位部分数据,大大减少了扩容缩容的影响。
它的缺点是数据分布不够均匀,容易造成数据倾斜。常见优化是引入虚拟节点来纾解热点问题。
拓展资料:简单介绍:一致性HASH算法和取余算法