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

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

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

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

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

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

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

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

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

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

相关推荐
cyber_两只龙宝1 天前
haproxy--实现能7层负载均衡、基于cookie会话保持、状态页监控的高性能web服务器集群
linux·运维·负载均衡·监控·haproxy·会话保持·高性能集群
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.2 天前
Keepalived单播模式配置与实战指南
linux·服务器·负载均衡
bantinghy2 天前
Nginx基础加权轮询负载均衡算法
服务器·算法·nginx·负载均衡
移动云开发者联盟2 天前
一键部署!移动云全面上线Clawdbot
运维·服务器·负载均衡
_F_y2 天前
负载均衡在线oj(数据库版)
运维·数据库·负载均衡
qq_312920112 天前
K8s Ingress实战:七层负载均衡流量治理
容器·kubernetes·负载均衡
七夜zippoe2 天前
负载均衡与反向代理实战:从Nginx配置到高可用架构设计
运维·python·nginx·负载均衡·核心原理
想摆烂的不会研究的研究生3 天前
Go后端场景——海量数据去重
经验分享·golang·负载均衡
Yeats_Liao3 天前
负载均衡设计:多节点集群下的请求分发与资源调度
运维·人工智能·深度学习·机器学习·华为·负载均衡
m0_549314864 天前
BIG-IP 介绍 2
tcp/ip·安全·负载均衡·big-ip·f5