登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
业界
›
海量数据如何“安家”?一文读懂哈希、范围和一致性哈希 ...
海量数据如何“安家”?一文读懂哈希、范围和一致性哈希三大分片策略
[ 复制链接 ]
田雅宁
2025-9-8 11:38:43
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
将单机问题转化为分布式解决方案时,首要任务是对问题进行分解,使得集群中的每台机器负责处理原问题的一个子集。无论是计算任务还是存储任务,其操作对象都是数据。因此,如何将海量数据有效地分解并分配到集群的不同节点上,即数据分布(也常称为数据分片,Data Partitioning/Sharding),是构建分布式系统的基础。
哈希分布
哈希分布(Hash-based Partition)是通过哈希函数(如MD5、SHA-1或简单取模)将数据的键(Key)映射到固定范围的哈希值,再根据哈希值将数据分配到不同的节点。
哈希分布(Hash-based Partition)通过一个确定的哈希函数(如MurmurHash、CRC32,或者简单的取模运算;MD5、SHA-1等加密哈希也可用于需要强随机性的场景,但通常计算开销较大)作用于数据的某个键(Key),将键映射到一个固定范围的哈希值。然后,根据哈希值(例如,hash(key) % num_nodes)将数据分配到对应的节点。
良好的哈希函数可以将数据尽可能均匀地散列到各个节点,避免数据倾斜,从而实现负载均衡。然而,当集群中的节点数量发生变化(增减节点)时,如果采用简单的取模方式(% num_nodes),绝大多数数据的哈希映射关系都会改变,导致大规模的数据迁移(如节点从10个扩容到11个,约90%的数据需要迁移)。
数据范围分布
数据范围分布(Range-based Partition)根据数据的键值(如时间戳、自增ID、字母顺序等具有序关系的属性)将其划分为连续的区间,每个节点负责存储一个或多个这样的数据区间。例如,一个订单表可以按月份范围(2023-01 至 2023-03,2023-04 至 2023-06等)划分,并将不同月份的数据存储在不同节点上。
由于数据在物理上按键顺序存储,范围查询(如查询某个时间段内的所有订单)非常高效,数据局部性好。然而,如果某些键值范围的数据量远大于其他范围,或者访问频率远高于其他范围(例如,当前月份的订单总是被频繁访问),则可能导致对应节点的负载过高,形成热点。
一致性哈希分布
一致性哈希(Consistent Hashing Partition)是为了解决传统哈希分布在节点数量动态变化时导致大规模数据迁移问题而提出的优化算法。它将所有节点和数据的键都通过同一个哈希函数映射到一个逻辑上的环形哈希空间(例如 0 到 232−1)。数据键被分配给在环上沿顺时针方向寻找到的第一个节点。
Ketama Hash 是经典实现之一。Rendezvous Hashing、Jump Consistent Hash、Maglev Hash 等也是在不同场景下具有特定优势的一致性哈希变种。
Ketama Hash又称割环法。在Ketama Hash中,将节点通过哈希方式,映射到一个范围是[0,2^32]的环上,同理,把数据也通过哈希方式映射到环上,然后按顺时针方向查找第一个哈希值大于等于数据的哈希值的节点,该节点即为数据所分配到的节点。而更好点的做法,可以为每个物理节点分配若干个虚拟节点,然后把虚拟节点映射到哈希环,分配给每个物理节点虚拟节点数量对应每个物理节点的权重。
如下图所示,数据K1映射到了节点2,数据K2映射到节点3。
1)扩容:对于割环法的扩容,只需在环上增加一组扩容节点生成的虚拟节点;
2)缩容:同样的,缩容时只需拿掉缩容节点对应的所有虚拟节点;
3)故障容灾:割环法的故障容灾与缩容情况一样,节点故障时只需将故障节点对应的所有虚拟节点从环上去掉。
如上图所示,当节点2故障时,将节点2对应的2个虚拟节点去掉,而原本映射到节点2的对象K1和K2分别映射到了节点1和节点4。
未完待续
很高兴与你相遇!如果你喜欢本文内容,记得关注哦!!!
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
哈希
海量
数据
如何
安家
相关帖子
核心数据链路设计
如何使用 LiteLLM 网关代理统一管理你的大模型
TikTok小店如何精准找到匹配度高的达人?妙手ERP达人建联功能来助力!
如何将代码轻松上传到 Gitee?Git 使用全攻略!
维修工单一团乱,如何开始高效数字化管理?
[20260228]如何实现字符串拆分输出数字序列.txt
如何通过 C# 实现 PDF 文本提取?
如何设计一个扛住千万级流量的系统?
ORACLE如何修改SEUQNCE的当前值
xv6如何开始运行第一个用户进程
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
核心数据链路设计
2
867
崆蛾寺
2026-02-27
业界
如何使用 LiteLLM 网关代理统一管理你的大模型
0
694
捡嫌
2026-02-27
安全
TikTok小店如何精准找到匹配度高的达人?妙手ERP达人建联功能来助力!
0
28
胰芰
2026-02-27
业界
如何将代码轻松上传到 Gitee?Git 使用全攻略!
1
963
裴竹悦
2026-02-28
安全
维修工单一团乱,如何开始高效数字化管理?
0
7
即息极
2026-02-28
安全
[20260228]如何实现字符串拆分输出数字序列.txt
0
466
系味
2026-03-01
业界
如何通过 C# 实现 PDF 文本提取?
0
116
褥师此
2026-03-02
业界
如何设计一个扛住千万级流量的系统?
0
999
骆贵
2026-03-03
安全
ORACLE如何修改SEUQNCE的当前值
0
741
疝镜泛
2026-03-03
安全
xv6如何开始运行第一个用户进程
0
723
赫连如冰
2026-03-03
回复
(21)
凤患更
2025-11-26 23:56:00
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
官厌
2025-12-1 01:28:27
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
府扔影
2025-12-29 14:22:00
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,下载保存了,貌似很强大
坡琨
2026-1-14 20:59:14
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
懂技术并乐意极积无私分享的人越来越少。珍惜
挚魉
2026-1-17 14:12:15
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
前排留名,哈哈哈
圄旧剖
2026-1-20 13:17:57
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
东西不错很实用谢谢分享
蝙俚
2026-1-24 06:25:09
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
仰翡邸
2026-1-24 10:34:08
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
这个有用。
材部
2026-1-25 11:53:45
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
分享、互助 让互联网精神温暖你我
宛蛲
2026-2-3 10:38:12
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
毋献仪
2026-2-3 11:12:56
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
捐催制
2026-2-5 10:49:16
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
貊淀
2026-2-9 10:44:23
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
铜坠匍
2026-2-9 21:53:03
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
司寇涵涵
2026-2-10 03:11:26
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
喝岖
2026-2-10 04:28:29
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢,下载保存了
寂傧
2026-2-10 23:26:52
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
谢谢分享,试用一下
魁睥
2026-2-13 15:20:19
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
院儿饯
2026-2-14 02:10:16
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个好,看起来很实用
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
田雅宁
2026-2-14 02:10:16
关注
0
粉丝关注
21
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
宋子
9888
6
韶又彤
9910
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9873
10
遗憩
10006
查看更多
今日好文热榜
441
自感翻译专章——一个核心概念的跨文化旅行
249
浅谈随机化
227
C# .NET 周刊|2026年1月4期
299
M3U8 播放调试不用愁!这款纯网页工具帮你
231
S001 【模板】从前缀函数到KMP应用 字符串
705
OpenClaw安装部署教程
973
OpenClaw 安装配置指南:从零开始在 Telegr
751
LeetCode 88 合并两个有序数组:python3 题
474
实战还原 V8 bytenode 保护 JS(V8 字节码
955
LeetCode 378 有序矩阵中第 K 小的元素:py
748
关于reverse的tea题目回顾
616
一款使用 C# 编写专为 Windows 11 打造的文
899
数据库事务机制
979
最小二乘问题详解12:三角化中的非线性优化
723
xv6如何开始运行第一个用户进程
148
这个框架会过时吗——AI的天花板和你的判断
77
ClawX 本地部署实战:OpenClaw 安装、API
326
OpenAI卸载量暴增295%,Claude登顶第一:AI
945
洛谷P1593 因子和 题解
147
一个命令,切换整个世界:CCSwitch 到底是