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

舱壁隔离为什么能防止一个服务拖垮整个系统?

高级 单选题 第 803 题 中等 系统架构设计师舱壁隔离故障隔离高可用架构级联故障
题目

某电商系统中,商品、订单、推荐、评论等功能共用同一个线程池和连接池。促销期间推荐服务大量超时,占满公共资源,导致原本正常的下单接口也无法响应。架构师准备把不同业务能力的线程池、连接池和调用资源进行隔离,避免局部故障扩散。该设计思想更接近()。

A 舱壁隔离,为不同功能或服务划分独立资源池,限制故障影响范围
B 把所有服务合并成一个巨大方法,减少名字数量
C 关闭所有日志,让故障看起来不存在
D 只增加页面背景图,不调整系统资源隔离
题目类型:原创高频练习题 用途:用于帮助理解系统架构设计师相关考点和答案解析,不等同于官方真题。
正确答案
A
答案解析

舱壁隔离借鉴船舱分隔思想,把系统资源按服务、业务、租户或调用类型进行隔离。某个区域进水,不应让整艘船沉没;某个服务超时,也不应占满所有线程、连接和队列。题干中推荐服务拖垮下单接口,本质是资源共享导致故障扩散,因此应通过舱壁隔离限制影响范围。

选项分析

A

正确。舱壁隔离通过资源分区限制故障影响范围。

B

错误。合并成巨大方法会降低可维护性,也不能解决资源互相拖累。

C

错误。关闭日志只会降低可观测性,不能消除故障。

D

错误。页面背景图属于界面表现,与后端资源隔离无关。

本题为什么容易错

这题容易只想到熔断。熔断是发现远端持续失败后快速失败,舱壁隔离更强调资源池分隔。真实系统里二者常配合使用:先用隔离防止互相抢资源,再用熔断避免持续等待。

先看结论

简短答案

舱壁隔离为什么能防止一个服务拖垮整个系统,正确答案是 A(舱壁隔离,为不同功能或服务划分独立资源池,限制故障影响范围)。舱壁隔离借鉴船舱分隔思想,把系统资源按服务、业务、租户或调用类型进行隔离。某个区域进水,不应让整艘船沉没;某个服务超时,也不应占满所有线程、连接和队列。题干中推荐服务拖垮下单接口,本质是资源共享导致故障扩散,因此应通过舱壁隔离限制影响范围。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
舱壁隔离,为不同功能或服务划分独立资源池,限制故障影响范围 本题正确答案 正确。舱壁隔离通过资源分区限制故障影响范围。 看到题干核心场景时优先联想到它
把所有服务合并成一个巨大方法,减少名字数量 本题干扰项 错误。合并成巨大方法会降低可维护性,也不能解决资源互相拖累。 看到该词不要急着选,先判断是否真正解决题干问题
关闭所有日志,让故障看起来不存在 本题干扰项 错误。关闭日志只会降低可观测性,不能消除故障。 看到该词不要急着选,先判断是否真正解决题干问题
只增加页面背景图,不调整系统资源隔离 本题干扰项 错误。页面背景图属于界面表现,与后端资源隔离无关。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 把所有服务合并成一个巨大方法,减少名字数量:错误。合并成巨大方法会降低可维护性,也不能解决资源互相拖累。
  • 关闭所有日志,让故障看起来不存在:错误。关闭日志只会降低可观测性,不能消除故障。
  • 只增加页面背景图,不调整系统资源隔离:错误。页面背景图属于界面表现,与后端资源隔离无关。
复习

知识点详解

舱壁隔离的价值在于控制故障半径。一个系统不可能完全避免故障,但可以避免小故障变成全站故障。常见做法包括核心链路和非核心链路分线程池,重要服务独立连接池,按租户设置资源配额,异步队列按业务拆分,第三方调用使用独立的客户端和超时配置。以电商为例,下单、支付、库存通常属于核心链路,推荐、评论、画像可以适当降级。如果推荐服务异常占满所有资源,说明系统没有把业务优先级和资源边界设计清楚。考试不会要求你写出某个中间件配置,但会考你能不能识别故障扩散原因,并选择隔离、熔断、限流这类架构手段。

备考速记

速记:隔离是给故障画边界,不让一个舱进水拖沉整条船。

级联故障在级联故障场景中的作用

级联故障在本题中的核心价值,是解决“某电商系统中,商品、订单、推荐、评论等功能共用同一个线程池和连接池。促销期间推荐服务大量超时,占满公共资源,导致原本正常的下单接口也无法响应。架构师准备把不同业务能力的线程池、连接池和调用资源进行隔离,避免局部故障扩散。该设计思想更接近()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出级联故障场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查级联故障的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把级联故障和把所有服务合并成一个巨大方法,减少名字数量、关闭所有日志,让故障看起来不存在、只增加页面背景图,不调整系统资源隔离放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
级联故障在系统架构设计师软考中的考法

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

解题思路

先看故障怎么扩散:推荐服务超时,本来只该影响推荐位,但因为大家共用线程池和连接池,它把公共资源耗尽,下单也跟着挂。老师讲架构高可用时会说,隔离不是为了让系统变复杂,而是为了让故障有边界。A 正好对应这个思路。

考点定位

架构题看到“一个非核心服务异常占满公共资源,影响核心链路”,要想到隔离、限流、熔断、降级等韧性设计,其中按资源池隔开就是舱壁隔离。

易错提醒

  • 所有业务共用一个线程池,低优先级服务异常时拖垮核心链路。
  • 只做扩容,不做隔离,流量一异常仍然互相影响。
  • 没有区分核心交易链路和非核心推荐、评论、统计链路。

备考提示

  • 系统架构设计师复习高可用时,把限流、熔断、降级、隔离、超时、重试放在同一组比较。
  • 看到“局部故障扩大成全局故障”,先问资源有没有隔离。
  • 论文和案例里写舱壁隔离时,最好说明按服务、线程池、连接池、队列或租户进行隔离。

你可能还想了解

  • 舱壁隔离为什么能防止一个服务拖垮整个系统?
  • 级联故障是什么?
  • 级联故障在系统架构设计师考试中怎么考?
  • 系统架构设计师级联故障题怎么理解?
  • 舱壁隔离是什么怎么考?
  • 系统架构设计师高可用怎么考?

本文小结

本题核心考点是级联故障在级联故障场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(舱壁隔离,为不同功能或服务划分独立资源池,限制故障影响范围)。