混沌工程实践与韧性设计

共 32 题
#

1. 缓存与数据库同时故障的系统韧性设计

A 应优先使用本地缓存与静态兜底数据,并对非核心请求快速失败,避免资源耗尽 ✓ 正确答案
B 应继续阻塞等待数据库返回,以保证数据绝对最新
C 所有场景都应拒绝服务,不允许任何降级
D 一旦 Redis 故障就必须直接中断整个系统
#

2. 网络延迟/丢包注入对微服务调用的影响验证

A 网络延迟只会影响延迟,不会影响吞吐量
B 慢调用比断连更隐蔽,可能悄悄耗尽线程池与连接池,但可通过超时、重试与隔离来缓解 ✓ 正确答案
C 注入网络故障后系统必然崩溃,无需观察
D 网络故障注入不需要任何工具支持
#

3. 跨区域容灾的流量切换与数据一致性

A 异步复制可保证 RPO 为 0
B 多活架构无需任何复制机制
C 流量切换不需要确认数据是否追上
D 同步复制会带来性能开销,但 RPO 趋近为 0;异步复制延迟低但灾难时可能丢失数据 ✓ 正确答案
#

4. 重试(Retry)的指数退避与抖动(jitter)

A 抖动是无意义的随机性,应去除
B 重试次数越多越好,无需限制
C 指数退避避免重试过密,抖动避免重试同步造成惊群;重试需配合上限与幂等使用 ✓ 正确答案
D 固定间隔重试是最优策略
#

5. 限流熔断在秒杀/大促的实战配置

A 限流和熔断只要设置一个即可
B 熔断阈值应设得越高越好,避免误触发
C 秒杀场景应放开所有限流以保证更多用户下单
D 通过网关限流、业务层并发限流、熔断与异步削峰协同,优先保护核心链路 ✓ 正确答案
#

6. 限流(RateLimiter)在客户端侧的防护作用

A 客户端限流用于自我保护并控制对下游的请求速率,避免故障时重试风暴压垮双方 ✓ 正确答案
B 客户端限流与服务端限流作用完全相同
C 客户端限流会降低可用性,应禁用
D 只有网关需要限流,客户端不需要
#

7. 隔板/熔断/重试组合使用的常见陷阱

A 重试应无视熔断状态继续执行
B 三者可任意混用,无顺序要求
C 常见陷阱包括重试穿透熔断、原语排序错误、舱壁线程池过小导致瓶颈 ✓ 正确答案
D 超时与熔断阈值无关
#

8. MTTR/MTBF 在韧性评估中的意义

A MTTR 反映稳定性,MTBF 反映恢复速度
B MTBF 比 MTTR 更易短期优化
C 可用性近似等于 MTBF/(MTBF+MTTR),韧性评估更关注反映恢复能力的 MTTR ✓ 正确答案
D 两者与可用性无关
#

9. Resilience4j 的 TimeLimiter 与超时控制

A 它用于限制并发调用数量
B 它只能用于同步调用
C 它负责熔断状态切换
D 它通过异步执行限制调用最长耗时,超时抛 TimeoutException,需配置 timeoutDuration 与是否取消任务 ✓ 正确答案
#

10. 依赖服务不可用时的降级与兜底数据

A 降级就是直接抛异常让用户感知
B 兜底数据只能在故障时临时生成
C 降级无需限流配合
D 通过返回默认值/缓存/静态兜底数据实现确定性降级,并配合告警与自动恢复 ✓ 正确答案
#

11. 可用性目标(99.9/99.95/99.99)的故障容忍度

A 99.9% 允许一年约 8.76 小时故障 ✓ 正确答案
B 99.99% 允许一年约 52 小时故障
C 可用性目标越高,实现成本越低
D 99.9% 与 99.99% 的容忍度相同
#

12. 基于混沌实验验证熔断与重试是否真的生效

A 配置了熔断就必然生效,无需验证
B 混沌实验只能验证重试,不能验证熔断
C 验证只需看日志,无需注入故障
D 通过注入真实故障、观测熔断状态机与重试行为,才能验证韧性机制真正生效 ✓ 正确答案
#

13. 基于错误预算的发布门禁(burn rate)

A burn rate 与错误预算无关
B burn rate 越大说明预算消耗越快,越应触发发布门禁 ✓ 正确答案
C 发布门禁只与代码评审有关
D burn rate 越小越说明系统异常
#

14. 强弱依赖梳理与关键链路保护

A 强依赖不可用时主流程失败,弱依赖可降级异步化,应把保护资源集中在关键链路的强依赖上 ✓ 正确答案
B 弱依赖不可用时主流程必然失败
C 所有依赖都必须同等保护
D 强弱依赖无需梳理
#

15. 慢调用(慢 SQL/慢接口)的超时与隔离

A 慢调用不影响系统整体
B 慢调用只影响数据库,不影响应用
C 对慢调用应不加超时地等待其完成
D 慢调用会长期占用线程与连接池,可通过超时控制单次时长并用并发隔离限制占用,再配合慢 SQL 治理 ✓ 正确答案
#

16. 故障注入后自动恢复(自愈)能力设计

A 自愈只需检测到故障即可,无需执行与复核
B 自愈应完全取代人工,无需任何人工干预
C 自愈与健康检查无关
D 自愈由检测、决策、执行、复核闭环组成,且自动操作需有熔断与回退安全网 ✓ 正确答案
#

17. 舱壁模式(Bulkhead)隔离资源避免故障扩散

A 舱壁通过资源分池切断故障扩散路径,线程池舱壁隔离彻底但开销大,信号量舱壁开销小但隔离线程有限 ✓ 正确答案
B 舱壁模式会消除所有故障
C 线程池舱壁与信号量舱壁隔离效果完全相同
D 舱壁与资源隔离无关
#

18. 超时传递(Deadline)在调用链上的重要性

A 每跳独立超时之和等于整体超时,无需传递
B 不传递 Deadline 会导致各跳超时叠加、总时长失控,传递 Deadline 让总超时由最外层统一控制 ✓ 正确答案
C Deadline 传递会拖慢系统
D 超时传递只对同步调用有意义
#

19. 错误预算快速消耗后的止血措施(冻结发布/扩容/降级)如何触发与解除?

A 止血措施无需回退与审计
B 只要错误率下降,立即解除所有止血措施
C 止血措施由 burn rate 超阈值触发,解除需在指标稳定一段时间后逐级进行,避免误解除 ✓ 正确答案
D 冻结发布是唯一止血手段
#

20. 降级(Fallback)策略与返回值设计

A 降级返回默认值/缓存/空结果,需保证语义正确、可区分真实与降级结果并打点监控 ✓ 正确答案
B 降级结果无需与真实结果区分
C 降级就是简单抛异常
D 降级返回值可以是不完整且错误的
#

21. Chaos Mesh 的 Pod/Network/IO 故障注入类型

A PodChaos 模拟网络延迟
B Chaos Mesh 只能注入 CPU 压力
C Chaos Mesh 不支持 Time 故障
D NetworkChaos 注入网络延迟/丢包等,IOChaos 注入磁盘读写异常,PodChaos 模拟实例级故障如重启 ✓ 正确答案
#

22. SLO 驱动的混沌实验设计

A 用 SLO 为标尺,通过故障梯度找到系统跌破 SLO 的临界点,量化韧性冗余 ✓ 正确答案
B SLO 与混沌实验无关
C 实验故障程度越强越好,无需梯度
D 混沌实验只需验证系统没崩溃,无需关注 SLO
#

23. SLO/SLI/Error Budget 的定义与计算

A SLO 就是实际测得的指标
B Error Budget 与 SLO 无关
C SLI 是目标值,SLO 是实测值
D SLI 是可量化指标,SLO 是目标值,Error Budget = 1 - SLO,表示允许的失败量 ✓ 正确答案
#

24. 重试的前提是幂等,哪些接口可安全重试,如何用幂等键保护

A 所有接口都可安全重试
B 只读接口天然幂等,非幂等写接口需用幂等键去重保护,才能安全重试 ✓ 正确答案
C 幂等键只用于查询
D 重试与幂等无关
#

25. Chaos Mesh、Litmus 与自研故障注入的选型对比

A 开源工具覆盖通用故障且集成成熟,自研适合定制业务级故障但成本高,应结合场景选型 ✓ 正确答案
B Chaos Mesh 与 Litmus 功能完全一致,无差异
C 自研永远优于开源工具
D 混沌工程不需要选型工具
#

26. 故障演练(GameDay)的组织与复盘

A 复盘只需复盘技术问题,不需复盘应急处置流程
B 演练应规划目标、可控执行、以时间线复盘响应过程并形成可跟踪的改进闭环 ✓ 正确答案
C 演练结论无需落地
D 演练只需执行,无需准备
#

27. 混沌实验与 CI/CD 结合的持续验证

A 混沌实验应在发布后一次性执行,不需持续
B 只需在发布前做一次混沌实验即可永久有效
C 混沌实验与 CI/CD 无法集成
D 通过将混沌实验接入预发布/金丝雀阶段,把实验结论作为发布门禁,实现韧性持续验证 ✓ 正确答案
#

28. 混沌实验的可观测依赖(指标/告警需先就绪)

A 混沌实验无需可观测性支撑
B 可观测性只在实验后需要
C 混沌实验前需先就绪指标采集、告警与链路追踪,否则无法判断故障行为、实验失去意义 ✓ 正确答案
D 告警规则与混沌实验无关
#

29. 混沌实验的爆炸半径控制与停止条件

A 通过限制作用范围、灰度、时间窗口控制爆炸半径,并设置明确的停止条件与安全护栏 ✓ 正确答案
B 混沌实验应一次注入全量故障,测试极限
C 混沌实验无需停止条件
D 爆炸半径无需控制
#

30. 混沌工程的核心原则(先假设稳态再注入故障)

A 混沌工程是随机破坏系统,无需稳态
B 稳态假设与混沌实验无关
C 先定义并确认稳态,再注入故障检验是否偏离稳态,让实验有明确判据 ✓ 正确答案
D 混沌工程唯一目的是制造故障
#

31. 用户体验与系统 SLI 的映射

A SLI 应聚焦内部技术指标,无需考虑用户体验
B 只度量系统内部指标即可
C 用户体验与 SLI 无法映射
D 从用户可感知的体验出发倒推系统 SLI,让技术指标对应具体的用户体验维度 ✓ 正确答案
#

32. 依赖故障的分类(瞬时/持续、慢/断)与应对策略矩阵

A 所有故障都应对持续重试
B 瞬时故障靠重试退避,持续故障靠熔断,慢调用靠隔离,断连靠快速失败,按故障类型匹配策略 ✓ 正确答案
C 故障分类与应对策略无关
D 持续断开也应无限重试