负载均衡之一致性哈希算法详解

负载均衡之一致性哈希算法详解

传统的哈希是直接把数据映射到对应的hash表上,但是当我们的数据量很大的时候,我们会采用多个hash节点来存储的方式来减少存储压力。

但是这种hash算法下,如果我们的节点发生了增加或减少的时候,我们就需要将所有数据,重新建立映射关系,这会导致大量的数据迁移和重新映射的问题。

而一致性hash算法就可以优化这些问题。

首先,一致性hash算法是将所有的数据全部映射到一个大小为0-2的32次方-1的环中(hash环存储)

然后,我们可以将我们服务的地址,映射到这个环上。

此时,当我们的数据来了以后,我们还是先将key通过hash计算放到我们的环上,然后我们看key沿顺时针 遇到的第一个节点,我们就将其放入该节点。

节点如果宕机了,可以zookeeper可以利用心跳检测功能,判断服务是否断开,从而移除相关节点,在zookeeper中移除后,我们需要在我们的hash环中也移除节点,假设我们移除了节点1,那么此时,我们只需要对一个数据进行重新映射即可。

同理添加节点也很方便,我们可以在node3和node1之间新增一个节点4,这样只会影响node3和node1这个区间的数据。

相关推荐
码上飞扬27 分钟前
Nginx负载均衡配置详解:轻松实现高可用与高性能
运维·nginx·负载均衡
程序猿000001号2 小时前
Java实现Consul/Nacos根据GPU型号、显存余量执行负载均衡
nacos·负载均衡
清河九月1 天前
Nginx 正向代理、反向代理和负载均衡
运维·nginx·负载均衡
01_2 天前
一致性哈希函数处理负载均衡(简单实现,勿喷)
算法·负载均衡·哈希算法
天上掉下来个程小白2 天前
开发环境搭建-06.后端环境搭建-前后端联调-Nginx反向代理和负载均衡概念
java·运维·spring boot·后端·nginx·负载均衡·苍穹外卖
obboda3 天前
web高可用集群项目(数据库主从同步、文件共享存储、nginx动静分离+负载均衡+高可用)
数据库·nginx·负载均衡
小技工丨4 天前
kakfa-3:ISR机制、HW&LEO、生产者、消费者、核心参数&负载均衡
大数据·运维·kafka·负载均衡
GGGGGGGGGGGGGG.5 天前
nginx+keepalived负载均衡及高可用
前端·nginx·负载均衡
weixin_425878235 天前
Nginx负载均衡策略详解:从轮询到智能分发,打造高可用服务架构
nginx·架构·负载均衡
_.Switch6 天前
高效API开发:FastAPI中的缓存技术与性能优化
python·缓存·性能优化·负载均衡·fastapi