【学习笔记】对一致性哈希的简单理解

本文介绍了在实际场景中如何应用一致性哈希算法。首先,将[0,2^32-1]区间虚拟化为闭环,并将节点(如IP地址)通过哈希函数映射到该闭环上。接着,把Cache节点映射到环上,为了实现更均衡的负载分布,引入了虚拟Cache的概念。通过这种方式,即使在网络变化时也能保证系统的稳定性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有在阿里实习的同学在工作中用到了一致性哈希,我决定学习一下。


一致性哈希的步骤,可以简单理解为以下几步:
1.是把[0,2^32-1]虚拟成一个闭环,如下图(图引sparkliang的专栏 ):
circle space
2.将节点(一般是IP)通过hash函数哈希后,映射到圆环上的某一点位置。(图引sparkliang的专栏
object
3.把Cache映射到圆环上成为Cache节点,再把之前的IP节点映射到Cache上。(图引sparkliang的专栏
cache
4.虚拟Cahce:当Cache数量较少时,会导致Cache之间的负载不均衡。所以使用虚拟Cache技术,将一个Cache节点进行多个hash映射,
例如
hash(cache1#1);
hash(cache1#2);
hash(cache1#3);
然后形成同一个节点的多个虚拟节点,通过增加一次Cache查找过程,使负载更加均衡。
并且:
a) 在某个Cache挂掉后,可以让其负载相对均匀的分摊给其他Cache。
b) 在添加某个新Cahce之后,对整体的影响不大。

参考文档


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值