一致性哈希算法

一致性哈希

1、问题背景

一般分布式缓存数据映射方案,在集群扩缩容的时候,会存在大量缓存失效,数据迁移的问题;如取模算法映射;

2、原理分析

一致性哈希算法的提出,是为了降低节点上下线的过程中带来的数据迁移成本,同时节点数量的变化与分片原则对于应用系统来说也是无感的。
图解一致性哈希算法,看这一篇就够了!

做两次映射:
第一步:对存储节点进行哈希计算,也就是对存储节点做哈希映射,比如根据节点的 IP 地址进行哈希;
第二步:当对数据进行存储或访问时,对数据进行哈希映射;

3、存在问题及解决方案

问题:普通的哈希环,会存在数据倾斜问题:即节点映射在环上分布并不均匀,导致数据堆积在一个节点上,严重会产生雪崩问题;

解决方案:添加虚拟节点,即多个交错的虚拟节点映射到一个真实节点,如Nginx中的一致性哈希算法,一个真实节点映射160个虚拟节点;

方案解释:比如,当某个节点被移除时,对应该节点的多个虚拟节点均会移除,而这些虚拟节点按顺时针方向的下一个虚拟节点,可能会对应不同的真实节点,即这些不同的真实节点共同分担了节点变化导致的压力。

微信一面:什么是一致性哈希?适用什么场景?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值