请简要阐述 Hash 分片、一致性 Hash 分片和按照数据范围分片三种方式的原理。
简答题
请简要阐述 Hash 分片、一致性 Hash 分片和按照数据范围分片三种方式的原理。
答案:Hash 分片:基于哈希表思想,按照数据的某一特征(key)计算哈希值,并将哈希值与系统中的节点建立映射关系,从而将数据分布到不同节点。优点:映射关系简单,元数据少;缺点:节点增减时大量数据迁移,且可能数据不均衡。一致性 Hash 分片:将数据和节点映射到一个首尾相接的 Hash 环上,数据从其在环上的位置顺时针找到第一个节点作为存储节点。优点:节点增减时仅影响环上相邻节点,数据迁移量小;缺点:需要维护节点在环上的位置。按照数据范围分片:将关键值划分成不同区间,每个物理节点负责一个或多个区间。区间大小不固定,可根据数据量动态调整,节点可负责多个块,块达到阈值可分裂。优点:数据均衡性好,节点增减时调整灵活;缺点:需要维护区间映射,元数据较多。
解析
参考答案
- Hash 分片:对数据 key 取哈希,按节点数取模定位。映射简单、元数据少;节点增减会大量迁移数据,且易倾斜。
- 一致性 Hash:节点与数据映射到首尾相接的 Hash 环,数据顺时针落到第一个节点。增减只影响相邻区间,迁移量小;需维护环上位置,可加虚拟节点。
- 范围分片:按关键值划区间,每节点负责一或多个区间,区间可分裂、动态调整。均衡且扩展灵活;需维护区间映射,元数据多。
得分点解析
- 哈希映射是 Hash 分片的定义核心;点出迁移与倾斜,才能说明它适合节点稳定的场景。
- 环加顺时针查找是一致性 Hash 的判别特征;只有说出“局部影响”,才算理解其价值。
- 区间划分与可分裂是范围分片的本质,动态调整决定其擅长有序与范围查询。
- 三者优劣对比是选型依据,常被追问“实际如何选”。
延伸
虚拟节点、预分片、路由与元数据管理是高频追问;结合扩容成本、热点与 CAP 作答更完整。