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

如何避免一个租户的异常流量拖垮所有用户?

高级 单选题 第 1058 题 较难 系统架构设计师单元化架构Cell-based Architecture故障隔离Blast Radius
题目

一个大型多租户平台共享同一套应用和数据库资源。某个租户的异常流量耗尽公共连接池,导致所有租户同时不可用。若目标是把类似故障限制在一小部分租户内,较合适的架构方向是()。

A 把所有租户继续集中到一个更大的单体实例中
B 只增加首页CDN缓存,不调整后端共享资源
C 按稳定分片规则把租户分配到多个相对独立的Cell,每个Cell具备完整服务能力并限制跨Cell共享故障点
D 关闭租户识别,让所有请求使用同一匿名身份
题目类型:原创高频练习题 用途:用于帮助理解系统架构设计师相关考点和答案解析,不等同于官方真题。
正确答案
C
答案解析

单元化架构把工作负载复制成多个相对独立的Cell,并将用户或租户稳定路由到其中一个。单个Cell过载或故障时,影响被限制在该Cell承载的范围内。

选项分析

A

错误。更大的共享实例可能提高容量,但故障影响范围仍是全体租户。

B

错误。CDN只能缓解部分静态或可缓存流量,公共数据库连接池仍可能被耗尽。

C

正确。独立Cell配合稳定路由可限制资源争抢和故障扩散。

D

错误。失去租户身份后更难实施配额、隔离、审计和路由。

本题为什么容易错

单元化架构容易被理解成“多部署几份”。若多个Cell仍共用一个无隔离的数据库、队列或控制面,公共依赖故障依旧可能让全站一起中断。

先看结论

简短答案

如何避免一个租户的异常流量拖垮所有用户,正确答案是 C(按稳定分片规则把租户分配到多个相对独立的Cell,每个Cell具备完整服务能力并限制跨Cell共享故障点)。单元化架构把工作负载复制成多个相对独立的Cell,并将用户或租户稳定路由到其中一个。单个Cell过载或故障时,影响被限制在该Cell承载的范围内。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
把所有租户继续集中到一个更大的单体实例中 本题干扰项 错误。更大的共享实例可能提高容量,但故障影响范围仍是全体租户。 看到该词不要急着选,先判断是否真正解决题干问题
只增加首页CDN缓存,不调整后端共享资源 本题干扰项 错误。CDN只能缓解部分静态或可缓存流量,公共数据库连接池仍可能被耗尽。 看到该词不要急着选,先判断是否真正解决题干问题
按稳定分片规则把租户分配到多个相对独立的Cell,每个Cell具备完整服务能力并限制跨Cell共享故障点 本题正确答案 正确。独立Cell配合稳定路由可限制资源争抢和故障扩散。 看到题干核心场景时优先联想到它
关闭租户识别,让所有请求使用同一匿名身份 本题干扰项 错误。失去租户身份后更难实施配额、隔离、审计和路由。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 把所有租户继续集中到一个更大的单体实例中:错误。更大的共享实例可能提高容量,但故障影响范围仍是全体租户。
  • 只增加首页CDN缓存,不调整后端共享资源:错误。CDN只能缓解部分静态或可缓存流量,公共数据库连接池仍可能被耗尽。
  • 关闭租户识别,让所有请求使用同一匿名身份:错误。失去租户身份后更难实施配额、隔离、审计和路由。
复习

知识点详解

单元化架构将完整工作负载复制为多个相对独立的单元,使用租户ID、账户ID或其他稳定键进行分片路由。每个Cell有明确容量边界,可独立部署、监控和恢复。它能缩小故障影响范围,但会增加路由、数据分片、跨Cell操作和运维复杂度。设计时还要评估全局控制面和共享服务,避免它们重新成为单点。

备考速记

扩容让系统扛得多,Cell让故障坏得少;稳定分片,减少共因。

Cell-based Architecture 在Blast Radius场景中的作用

若平台有1000个租户,分成10个Cell,单Cell故障的理论用户影响可从全部租户缩小到约十分之一。实际效果取决于分片均衡和共享依赖是否真正受控。

拓展

同类题怎么考

  • 根据多租户资源争抢选择故障隔离架构。
  • 识别Cell架构中仍可能造成共同失效的共享依赖。
Cell-based Architecture 在系统架构设计师软考中的考法

题干强调“限制影响范围、租户隔离、局部故障”时,优先考虑Cell或舱壁式隔离;只增加实例数解决的是容量,不一定解决共同故障域。

解题思路

题目真正问的不是“怎样扛更多流量”,而是“怎样少坏一片”。如果所有租户继续共用同一个连接池,机器再大仍保留共同故障点。把租户稳定分到多个完整Cell,每个Cell有独立容量和故障边界,某个租户失控时最多影响所在Cell,所以选 C。

考点定位

Cell不是普通横向扩容实例。关键在于完整能力、稳定分片和故障隔离,尤其要减少会让所有Cell共同失败的共享依赖。

易错提醒

  • 路由规则不稳定,同一租户的请求不断跨Cell跳转。
  • 业务数据分在Cell内,但全体仍共享容量很小的中心鉴权服务。
  • 没有设计Cell级监控和扩容,局部过载直到用户投诉才发现。

备考提示

  • 画三格Cell,分别标出租户集合、应用、数据和配额,再圈出仍共享的依赖。
  • 比较普通副本扩容和Cell隔离:前者先看吞吐,后者先看影响范围。

你可能还想了解

  • Cell架构和普通集群有什么区别?
  • 单元化架构怎样限制爆炸半径?
  • 多个Cell还能不能共享数据库?

本文小结

单元化架构按稳定规则把租户分到多个相对独立的完整Cell,使过载和故障尽量局限在单个Cell,而不是影响所有用户。