系统架构设计师 · 高频练习

一致性哈希为什么适合缓存节点扩缩容?

高级 单选题 第 710 题 中等 系统架构设计师一致性哈希分布式缓存扩缩容哈希环
题目

某分布式缓存集群使用普通取模方式分配 key 到节点。每次新增或删除缓存节点时,大量 key 都会重新映射,造成缓存大面积失效。架构师希望节点变化时尽量只迁移少量 key,较适合采用()。

A 一致性哈希
B 瀑布模型
C 黑盒测试
D 数字签名
题目类型:原创高频练习题 用途:用于帮助理解系统架构设计师相关考点和答案解析,不等同于官方真题。
正确答案
A
答案解析

一致性哈希把节点和 key 映射到哈希环上,节点增减时通常只影响相邻区间的一部分 key,能减少普通取模方式在节点数量变化时造成的大规模重映射问题。它常用于缓存、分布式存储、负载分配等场景。

选项分析

A

正确。一致性哈希适合降低节点变化时的 key 大规模迁移。

B

错误。瀑布模型是软件开发过程模型。

C

错误。黑盒测试是测试方法,不解决缓存 key 分布。

D

错误。数字签名用于身份、完整性和不可否认性。

本题为什么容易错

容易把一致性哈希理解成“让数据绝对均匀”。它主要解决节点增减时的迁移范围问题,均衡性还常需要虚拟节点来改善。考试如果强调“新增节点导致大量缓存失效”,就不要只回答普通哈希。

先看结论

简短答案

一致性哈希为什么适合缓存节点扩缩容,正确答案是 A(一致性哈希)。一致性哈希把节点和 key 映射到哈希环上,节点增减时通常只影响相邻区间的一部分 key,能减少普通取模方式在节点数量变化时造成的大规模重映射问题。它常用于缓存、分布式存储、负载分配等场景。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
一致性哈希 本题正确答案 正确。一致性哈希适合降低节点变化时的 key 大规模迁移。 看到题干核心场景时优先联想到它
瀑布模型 本题干扰项 错误。瀑布模型是软件开发过程模型。 看到该词不要急着选,先判断是否真正解决题干问题
黑盒测试 本题干扰项 错误。黑盒测试是测试方法,不解决缓存 key 分布。 看到该词不要急着选,先判断是否真正解决题干问题
数字签名 本题干扰项 错误。数字签名用于身份、完整性和不可否认性。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 瀑布模型:错误。瀑布模型是软件开发过程模型。
  • 黑盒测试:错误。黑盒测试是测试方法,不解决缓存 key 分布。
  • 数字签名:错误。数字签名用于身份、完整性和不可否认性。
复习

知识点详解

一致性哈希通过哈希环减少节点变化带来的重映射范围。新增节点时,只需要把环上某一段 key 迁移给新节点;删除节点时,也主要由相邻节点接管。为了避免节点分布不均,实际系统常引入虚拟节点,让一个物理节点在环上对应多个位置。软考题通常不要求推导哈希环细节,但会考你能不能识别它适合缓存节点扩缩容场景。它解决的是“节点数量变化时不要让大部分缓存都失效”,不是保证每个节点永远负载完全相等;负载均衡还要配合虚拟节点、容量权重和热点治理。

备考速记

速记:普通取模换节点,很多 key 都搬家;一致性哈希让搬家范围小一点。

哈希环在哈希环场景中的作用

哈希环在本题中的核心价值,是解决“某分布式缓存集群使用普通取模方式分配 key 到节点。每次新增或删除缓存节点时,大量 key 都会重新映射,造成缓存大面积失效。架构师希望节点变化时尽量只迁移少量 key,较适合采用()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出哈希环场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查哈希环的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把哈希环和瀑布模型、黑盒测试、数字签名放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
哈希环在系统架构设计师软考中的考法

软考选择题通常不会只考概念定义,还会把哈希环放到哈希环场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

这题的关键不是“用了哈希”,而是“节点数量变化后会不会大面积乱掉”。普通取模里,节点数从 4 变 5,很多 key 的取模结果都会变;一致性哈希把影响控制在相邻区间,扩容和缩容时更平滑。老师讲分布式缓存时常用这题区分普通 hash 和一致性 hash。

考点定位

一致性哈希的题眼是节点增减、减少 key 重映射、哈希环、缓存扩缩容。不要把它只理解成普通哈希取模。

易错提醒

  • 用 key % 节点数做分配,却没有考虑节点数变化后的大规模重映射。
  • 认为一致性哈希天然完全均衡,忽略虚拟节点的作用。
  • 只关注命中率,不关注扩缩容时的缓存迁移和雪崩风险。

备考提示

  • 分布式缓存题建议把一致性哈希、虚拟节点、缓存雪崩、热点 key 放在一起复习。
  • 看到节点新增、删除、扩缩容和减少迁移,优先想到一致性哈希。
  • 架构题不要只背名词,要能说出它解决的是哪类变化成本。

你可能还想了解

  • 一致性哈希为什么适合缓存节点扩缩容?
  • 哈希环是什么?
  • 哈希环在系统架构设计师考试中怎么考?
  • 系统架构设计师哈希环题怎么理解?
  • 一致性哈希有什么作用怎么考?
  • 一致性哈希为什么适合缓存扩容怎么考?

本文小结

本题核心考点是哈希环在哈希环场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(一致性哈希)。