当前位置: 首页 > news >正文

一致性 Hash 超通俗讲解

一、普通哈希分配 KV 有什么致命问题

假设我们有 3 台服务器,用来存大量 KV 数据:节点 A、节点 B、节点 C 常规分配规则公式:节点下标 = hash(Key) % 总机器数 N

举例: N=3,某个 Key 算出来哈希取模是 0 → 存 A;模 1 存 B;模 2 存 C。

痛点:增减一台机器,几乎所有数据都要搬家

如果再加一台节点 D,总机器数 N=4 原来所有 Key 取模结果全部变了,绝大多数 Key 匹配的服务器全部错乱,需要大规模迁移数据,系统卡顿、压力巨大。 一致性 Hash 就是专门解决扩容 / 缩容时数据迁移量太大的算法。

二、一致性 Hash 核心结构:哈希环

  1. 设定一个固定哈希取值范围:0 ~ 2³²−1,把首尾连起来,形成一个环形哈希空间
  2. 第一步:把所有真实服务器节点,各自算出哈希值,摆到圆环对应的位置上。
  3. 存放 / 查询某个 Key 的规则: ① 计算这个 Key 的哈希值,定位到环上一个点; ② 沿着圆环顺时针往前走,遇到的第一个服务器节点,就是这个 Key 的存放节点。

简单举例

环上顺时针排布节点:A → B → C

  1. Key 哈希落在 A~B 区间:顺时针找到 B,数据存在 B
  2. Key 哈希落在 B~C 区间:顺时针找到 C,数据存在 C
  3. Key 哈希落在 C~A 区间:顺时针找到 A,数据存在 A

三、增减节点优势(核心优点)

1、新增节点

只影响新增节点逆时针相邻区间里的一部分 Key,只有这一小部分数据需要迁移,绝大部分 KV 数据不用动。

2、某个节点宕机下线

下线节点对应的所有 Key,会顺延顺时针找下一个节点承接,同样只有局部数据迁移,不会全局洗牌。

对比普通取模哈希:普通哈希改总数 = 全量数据搬迁;一致性哈希只有少量数据搬迁。

四、一致性 Hash 天生缺陷:数据倾斜

如果节点在哈希环上分布不均匀,有的节点占据圆环很大一段区间,存海量数据;有的节点区间很小,数据很少,负载严重不均衡。

解决方案:虚拟节点

给每一台真实物理节点,虚拟出成百上千个虚拟节点,计算哈希打散均匀散布在整个环上。 寻址逻辑不变:Key 找到虚拟节点后,再映射回对应的真实机器。 好处:

  1. 数据在多台机器分布更均匀,负载均衡;
  2. 某台机器下线,数据会分摊给多个后继节点,不会瞬间压垮单台服务器。

极简总结

  • 一致性 Hash 构建 0~2³² 环形哈希空间,节点与 Key 映射到环上,Key 顺时针匹配首个节点完成存储分配;
  • 增减节点仅少量数据迁移,解决普通哈希扩容大规模数据搬迁问题;
  • 引入虚拟节点解决数据倾斜、节点负载不均问题;
  • 作用是 KV 数据分片路由,和 Raft 多副本一致性属于不同层面的分布式方案
http://www.jsqmd.com/news/1071805/

相关文章:

  • AI进阶三境界:从聊天框到专家团队,你处于哪一层?
  • 再见RAG!AI知识库还得是SAG,又快又准~
  • Go语言高效学习路线 + 超详细对比C语言(从语法到底层思维)
  • AMDVLK完全指南:如何在Linux上释放Radeon显卡的Vulkan性能潜力
  • Doris详细介绍与使用之查询语法(三)
  • 预测系统的监控与告警:当你的模型开始“静默失效”
  • 终极指南:三步掌握DeepLabCut无标记姿态追踪技术
  • RT-Thread的内核对象管理,设计比你想的巧妙
  • V9数据库替换授权
  • Get Shit Done:彻底解决AI编程上下文衰退问题的元提示工程系统
  • 微信小程序开店找哪家公司,正规靠谱怎么选?
  • 微信小游戏Unity适配方案:5个核心挑战与实战优化策略
  • 数据库视图
  • 我在大厂做Agent落地踩过的那些坑
  • 半小时学会 Python 爬虫:从零爬取知乎实时热榜榜单
  • 一行命令生成 PPT:OfficeCLI 让文档自动化彻底告别 50 行 Python
  • 从钉钉 ONE 到企业版信息流:谁决定你先做什么
  • 企业微信会话存档实战:基于超时提醒机制的自动化响应方案
  • 《超标量处理器设计》- 执行
  • 开源库存管理终极指南:现代化供应链的技术实现方案
  • 小程序分销裂变怎么做?实体门店二级分销落地全流程拆解
  • 基于Python+可视化技术的轻量级Web接口自动化测试平台的设计与实现
  • 上海普陀区老房翻新装修报价清单透明的公司
  • CBCX:把服务体系做扎实,注重效率的使用者更容易感受到的标准
  • Prompt Engineering 过时了?国外程序员开始玩 Loop Engineering
  • 国内通用电商自动化对账解决方案
  • Token计费,正式翻篇了——知医邦AI产品最新定价到底怎么算?
  • CBCX外汇在在线支持上靠谱吗?
  • 阿里Java面试速成指南:2026程序员短期突击必备!
  • Relique:消费者 RWA 正在兴起,卡牌、球鞋、手表和收藏品上链趋势分析