一致性hash算法

1. 使用场景

应用场景十分广泛,比如分布式缓存中根据key找到存储在哪台服务器上(分布式架构缓存)。

2. 什么是一致性hash算法?

先理解一下图:

分布式架构缓存处理中,Hash算法分散数据存储hash(n)%4 同时也可以快速查找数据而不用遍历所有的服务器。

然而,如果服务器数量增加或减少,要么缓存服务器数据全部需要重新计算存储 -----hash(n)%5 ,要么需要遍历所有缓存服务器。

显然这种做法不够灵活应对生产中的场景。因此才引入一致性hash算法。

3. hash环

了解一致性hash算法前,先了解hash环。

hash环:一致性Hash算法是对2^32取模,对服务器确定此数据在环上的位置(比如A,B,C,D)。

数据存放:数据进来后对2^32 取模,得到一个值K1,在Hash环中顺时针找到服务器节点。

服务失效:假如B服务失效,如果是B失效了, 将B的数据迁移至C即可,对于原本散列在A和D的数据,不需要做任何改变。

4. 总结

一致性hash算法(DHT)通过减少影响范围的方式解决了增减服务器导致的数据散列问题,从而解决了分布式环境下负载均衡问题。

5、参考

https://blog.csdn.net/zhanglu0223/article/details/100579254?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值