夜雨聆风学习资料网

ARTICLE · 1149325

系统架构师模拟题冲刺 01:软件架构设计与架构评估 26 题--架构风格、质量属性、评估方法、演化与维护、SOA 与云原生

系统架构师模拟题冲刺 01:软件架构设计与架构评估 26 题--架构风格、质量属性、评估方法、演化与维护、SOA 与云原生

距离系统架构师考试还剩 13 天,我认为不能只单纯通过浏览理论知识来应对考试,通过多做模拟预测题目,专项训练核心考点更能加深记忆。

通过刷题进行训练,能够将零散知识点串联成体系,熟悉命题角度,掌握答题范式,有效发现知识盲区,稳步提升应试水平。

01

软件架构设计与架构评估
架构风格、质量属性、评估方法、演化与维护、SOA 与云原生

01在 C2 架构风格中,构件之间的通信必须经由连接件中转,且通信方向受到严格约束。下列关于该风格通信机制的说法中,正确的是。

A. 任意两个构件之间可以直接进行双向同步方法调用

B. 所有构件通过对共享内存区域的直接读写完成数据交换

C. 通信由中央控制器统一调度,以集中式广播的方式下发到各构件

D. 上层构件通过连接件向下发出请求,下层构件通过连接件向上发出通知,且消息传递均为异步

答案D解析

C2 风格最初用于用户界面系统,其通信机制包含三条约束。第一,构件之间不发生直接调用,任何交互都必须经由连接件中转。第二,通信方向固定,上层构件通过连接件向下发出请求,下层构件通过连接件向上发出通知,不允许反向调用。第三,消息传递是异步的,发送方不阻塞等待接收方处理完成。这三条约束把构件之间的耦合降到很低,使单个构件可以被独立替换,系统因而具备较好的增量演化能力。选项 A 描述的是调用返回风格,选项 B 描述的是以共享数据区为中心的仓库风格,选项 C 所述集中式广播既不符合 C2 的方向约束,也不符合其异步特性。故选 D。

02仓库风格与黑板风格都以共享数据区为中心组织系统结构。下列关于两者区别的说法中,正确的是。

A. 两者结构完全相同,只是命名习惯不同

B. 仓库风格中外部构件自主决定何时读写共享数据,黑板风格另设控制组件依据当前状态决定激活哪个知识源

C. 仓库风格不允许并发访问共享数据,黑板风格允许

D. 黑板风格不使用共享数据区,各知识源之间直接通信

答案B解析

两种风格共享同一个结构基元,即以中央数据区作为构件之间的交互媒介,差别在于控制流的归属。仓库风格中,中央数据结构是纯粹被动的存储,外部构件各自决定何时读取或写入,系统本身不产生调度行为,关系数据库管理系统与编译器中的符号表是典型代表。黑板风格则在共享区之外增设一个控制组件,该组件依据黑板上当前的状态与解空间的推进程度,动态选择并激活最合适的知识源,形成状态驱动、机会式求解的过程。因此黑板适合求解路径不确定的问题,例如语音识别、图像理解与信号处理;仓库适合数据需要被多个构件共享访问的场景。选项 A、C、D 均与两者的定义不符。故选 B。

03软件架构描述语言是专门用于描述软件架构的形式化语言。下列关于它的说法中,正确的是。

A. 软件架构描述语言仅用于绘制界面原型

B. 软件架构描述语言通常提供构件、连接件与架构配置三类基本建模元素

C. 软件架构描述语言与统一建模语言完全等价

D. 软件架构描述语言无法描述系统的动态行为

答案B解析

软件架构描述语言的核心建模元素通常分为三类。构件指承担计算与状态存储的主体;连接件指构件之间交互的媒介,例如管道、过程调用与事件总线;架构配置指说明构件与连接件如何组装为整体的规则。它的设计目标是精确与可分析,因此既能描述接口与约束,也能描述动态行为,Wright 与 Darwin 均支持行为描述,选项 D 不成立。统一建模语言是通用建模语言,其构件图与部署图可以用来表达架构,但它并不等价于架构描述语言,选项 C 错误。选项 A 把架构描述语言窄化为界面绘制工具,同样错误。常见的架构描述语言还有 Acme、UniCon 与 Aesop。故选 B。

04特定领域软件架构的建立过程按教材划分为三个依次递进的活动。这三个活动是。

A. 需求分析、概要设计、详细设计

B. 项目规划、开发实施、运行维护

C. 领域分析、领域设计、领域实现

D. 数据建模、逻辑建模、物理建模

答案C解析

特定领域软件架构是面向某一应用领域的可复用参考架构,其建立过程由三个依次递进的活动构成。领域分析负责获取领域知识并建立领域模型,识别该领域中的共性与变化性;领域设计在领域模型的基础上产出能够覆盖领域需求的参考架构,也就是特定领域软件架构本身;领域实现依据参考架构开发可复用构件与生成机制,形成领域特定的开发支持环境。三个活动之间存在迭代关系,领域分析的结论可能因实现阶段的反馈而修正。选项 A 是单个项目的开发阶段划分,选项 B 是项目生命周期的阶段划分,选项 D 是数据库设计的步骤划分,均不属于特定领域软件架构的层次模型。故选 C。

05基于架构的软件设计方法强调自顶向下、递归细化,其理论建立在三个基础之上。这三个基础是。

A. 数据流分析、控制流分析、状态转换分析

B. 瀑布模型、原型模型、螺旋模型

C. 结构化方法、面向对象方法、面向服务方法

D. 功能分解、选择架构风格以实现质量与业务需求、软件模板的使用

答案D解析

基于架构的软件设计在三个基础之上展开。第一是功能分解,通过自顶向下、逐层细化的方式把系统功能拆解到可实现的粒度。第二是选择架构风格来实现质量和业务需求,针对不同的质量目标选用相应的风格,例如以分层结构获得可修改性,以冗余结构获得可用性。第三是软件模板的使用,借用已有的模板与参考架构加速设计并保持组织内的一致性。该方法的核心主张是由商业需求驱动、由质量属性驱动、由架构驱动,这三点正是它区别于其他设计方法的关键。选项 A 属于结构化分析的手段,选项 B 是过程模型,选项 C 是开发方法学的分类,均不构成其理论基础。故选 D。

06在描述可修改性质量属性的场景时,需要区分刺激源、刺激、环境、制品、响应与响应度量六个要素。其中响应要素指的是。

A. 系统每秒能够处理的请求数量

B. 系统的平均无故障运行时间

C. 系统支持的最大并发用户数

D. 施加变更之后系统受影响的范围以及完成修改所需付出的工作量

答案D解析

质量属性场景的六要素中,响应描述系统在刺激作用下产生的行为。对可修改性而言,刺激源通常是开发者或维护者,刺激是提出变更请求,例如新增功能、修改算法或更换运行平台;制品是被修改的对象,可以是某个模块、某个接口或整个系统;响应则是系统在多大范围内受到影响,以及完成这次修改需要付出多少工作量。响应度量把响应量化,例如修改涉及的模块数不超过三个、改动代码行数不超过两百行、在两人日内完成。选项 A 与 C 属于性能的度量,选项 B 属于可用性的度量。故选 D。

07某架构评估场景描述为,在一千个并发用户的环境下,系统百分之九十的请求响应时间不超过五百毫秒。其中并发用户数属于环境要素,请求属于刺激要素,响应时间属于响应要素。场景末尾的百分之九十与五百毫秒共同描述的是。

A. 可用性场景的响应度量

B. 性能场景的响应度量

C. 安全性场景的响应度量

D. 可测试性场景的响应度量

答案B解析

性能质量属性关注系统的响应能力与资源利用效率,其场景的响应度量包括延迟、吞吐量、抖动与资源利用率等指标,并且常以百分位数表述以体现分布特征。题干中,并发用户数属于环境要素,请求属于刺激要素,响应时间属于响应要素,而百分之九十的请求不超过五百毫秒是对响应的量化,因此属于性能场景的响应度量。可用性的度量通常是可用时间比例、平均故障间隔时间与平均修复时间;安全性关注抵御攻击的能力以及检测到攻击所需的时间;可测试性关注通过测试发现缺陷的难易程度。故选 B。

08可测试性战术分为控制与观察、限制复杂度两类。在下列战术中,不属于提高可测试性的是。

A. 提高数据加密强度

B. 记录与回放

C. 内置监控器与状态接口

D. 限制构件复杂度

答案A解析

可测试性战术分为两类。第一类是控制与观察,即为系统提供可控的输入通道与可观察的输出通道,记录与回放把真实运行数据保存下来供离线复现,内置监控器与状态接口让测试者能够读取内部状态。第二类是限制复杂度,通过减少构件数量、降低依赖层次、限制不确定性来降低测试难度,引入时间抽象与消除随机性都属于此列。提高数据加密强度属于安全性战术,它会使数据难以直接观察与调试,反而降低可测试性。故选 A。

09可用性战术按错误检测、错误恢复与错误预防三类组织。下列战术组合中,全部属于错误检测的是。

A. 主动冗余与被动冗余

B. 检查点与回滚

C. 存活探测、心跳与异常监控

D. 引入中间件降低构件之间的耦合

答案C解析

错误检测战术建立在对系统运行状态的持续观察之上。存活探测由一方主动探询另一方是否存活,心跳由被探测方周期性上报自身状态,异常监控捕获并统计运行期抛出的异常,此外还有时间戳与超时判断以及内置自测试。错误恢复战术包括主动冗余、被动冗余与备用冗余,以及回滚、检查点与回滚、降级运行与重新引入。错误预防战术包括移除故障源、引入事务与进程监控。选项 A 与 B 属于错误恢复,选项 D 属于提高可修改性的战术。故选 C。

10某系统的主用节点在正常工作时对外提供服务,备用节点同时处理完全相同的请求并保持状态同步,一旦主节点失效,备用节点立即接管且服务几乎不中断。这种冗余方式属于。

A. 被动冗余,备用节点处于就绪状态但不参与处理

B. 冷备方式,备用节点平时不运行也不保存状态

C. 主动冗余,所有副本同时处理相同请求并同步状态

D. 无冗余设计,仅依靠单一节点的可靠性

答案C解析

冗余按备用部件的工作状态分为三类。主动冗余又称热备或并行冗余,所有副本同时处理相同请求并同步状态,故障切换几乎不产生中断,代价是资源利用率较低。被动冗余又称温备,备用部件处于就绪状态但不参与处理,需要周期性同步状态,切换存在一定延迟。备用方式即冷备,备用部件平时不运行也不保存状态,故障时启动并加载数据,恢复时间最长。题干明确说明备用节点同时处理完全相同的请求,说明主备节点同时在线工作,属于主动冗余。故选 C。

11某系统由两个子系统串联组成,两个子系统的可用性分别为 0.99 与 0.98。该系统的整体可用性约为。

A. 0.9702

B. 0.985

C. 0.98

D. 0.99

答案A解析

串联结构要求所有部件同时正常工作系统才可用,因此整体可用性等于各部件可用性的乘积。计算得到 0.99 乘以 0.98 等于 0.9702。由此可以看出串联结构的固有缺陷,整体可用性必然低于其中任意一个部件,串联环节越多,系统可用性下降越明显。与之相对,并联即冗余结构的可用性等于 1 减去各部件同时失效的概率,结果高于任意一个部件。若两个可用性均为 0.9 的部件并联,整体可用性为 1 减去 0.1 与 0.1 的乘积,等于 0.99。解题时先判断结构属于所有部件都必须工作,还是其中之一工作即可。故选 A。

12两个可用性均为 0.9 的模块并联互为备份,只要其中一个模块正常工作系统即可用。该并联系统的可用性为。

A. 0.81

B. 0.9

C. 0.99

D. 1.8

答案C解析

并联结构的可用性计算思路是先求全部部件同时失效的概率,再用 1 减去该概率。两个模块相互独立,同时失效的概率为 0.1 与 0.1 的乘积等于 0.01,因此系统可用性为 1 减去 0.01 等于 0.99。若把 0.9 与 0.9 相乘得到 0.81,那是把并联当成了串联,0.81 低于单个模块的可用性,显然与冗余的初衷相悖。此处还可以看出冗余的边际效益递减:把可用性从 0.9 提升到 0.99 需要增加一个副本,若要继续提升到 0.999 则需要三个副本,成本增长快于收益增长,因此副本数量应当结合业务对中断的容忍度来权衡。故选 C。

13在体系结构权衡分析方法中,需要识别架构决策的性质。对某一个质量属性产生显著影响,且该影响基本不涉及其他质量属性的架构决策被称为。

A. 敏感点

B. 权衡点

C. 非风险点

D. 风险主题

答案A解析

体系结构权衡分析方法用三个概念刻画架构决策的性质。敏感点是指对某一个质量属性影响很大的决策,该决策稍有变化,对应质量属性就会明显变化,其影响基本局限在单个属性之内。权衡点是指同时对多个质量属性产生影响,且这些属性之间此消彼长的决策,例如提高加解密强度会同时提升安全性并降低性能。风险点与非风险点用于归类决策的后果,可能导致问题的是风险点,明确不会带来负面影响的是非风险点。题干强调只影响单一属性,因此属于敏感点。考试中常把敏感点与权衡点互换作为干扰项,判断的关键在于该决策涉及一个属性还是多个属性。故选 A。

14在体系结构权衡分析方法中,构建效用树是一项核心活动。该活动的主要目的是。

A. 计算项目的投资回报率

B. 绘制系统的物理部署拓扑

C. 把质量属性需求逐层细化并排序,形成可分析、可优先处理的场景集合

D. 自动生成单元测试用例

答案C解析

效用树是体系结构权衡分析方法在场景与需求收集阶段的核心工具。它以效用为根节点,向下分解为若干质量属性,例如性能、可用性、安全性与可修改性,每个属性再分解为更细的关切点,叶子节点是具体的质量属性场景。每个场景还要由参与者按重要性与实现难度两个维度打分,据此筛选出最值得深入分析的场景。这一工具的价值在于把系统要高可用这类无法验证的口号,转化为当主数据库失效时系统应在三十秒内切换到备用库这样可度量、可排序的场景。选项 A、B、D 都不是效用树的用途。故选 C。

15在架构评估领域存在若干种评估方法,各自的侧重点并不相同。其中把质量属性收益与实现成本同时纳入考量,用于支持经济决策的方法是。

A. 软件架构分析方法

B. 体系结构权衡分析方法

C. 主动评审与中间设计方法

D. 成本效益分析方法

答案D解析

四个选项的定位各不相同。软件架构分析方法是最早出现的架构分析方法,主要围绕可修改性等质量属性组织场景并实施评估。体系结构权衡分析方法在此基础上扩展了质量属性的覆盖面,重点识别敏感点、权衡点与风险点,回答的是架构决策对质量属性有何影响这一问题。成本效益分析方法在权衡分析方法的基础上进一步引入经济学视角,对每一项架构策略估算其收益、成本与优先级,回答的是有限预算应当投入到哪些架构改进上。主动评审与中间设计方法用于对架构的中间产物做轻量级评审。题干强调收益与成本并重并支持经济决策,指向成本效益分析方法。故选 D。

16某系统经过多年持续修改,代码实现逐渐偏离最初的设计意图,原有的分层约束与接口约定被不断突破,系统质量持续下降。这一现象称为。

A. 架构重构

B. 架构漂移

C. 架构逆向

D. 架构模式

答案B解析

架构漂移也称为架构侵蚀,指系统在长期演化过程中,实现与设计之间的偏离量不断累积。其典型成因是开发者为了赶工期而绕过分层约束、直接跨层调用,或者在缺乏架构守护机制的情况下各自扩展接口。偏离一旦累积,系统会逐渐退化为难以维护的结构,修改一个功能往往牵动多个模块,回归测试的范围也随之膨胀。与漂移相对的是架构重构,即在不改变外部行为的前提下重新整理内部结构,使实现重新收敛到设计意图。架构逆向是指从已有代码反推设计信息的过程,架构模式则是对可复用架构经验的命名。故选 B。

17在微服务架构中,服务边界的划分直接决定系统的耦合程度。实践中划分服务边界最常依据的原则是。

A. 按数据库表的数量平均分配

B. 基于领域驱动设计识别出的限界上下文,围绕业务能力做高内聚、低耦合的划分

C. 按开发团队的成员人数平均分配

D. 按源代码文件的行数切分

答案B解析

微服务拆分的核心判据是业务能力,而不是技术细节或代码规模。主流实践路径来自领域驱动设计:先通过事件风暴等方法梳理业务领域,识别出限界上下文,每个上下文内部拥有统一的领域模型与业务规则,上下文之间通过明确定义的接口交互。这样划分出来的服务,内部改动不需要跨团队协调,对外契约稳定,才可能被独立开发、独立部署与独立扩展。选项 A、C、D 分别按数据表、人员与代码行数切分,都属于技术驱动的切分方式,会造成业务逻辑被撕碎、事务边界混乱、团队职责不清。故选 B。

18API 网关是微服务架构的统一入口。在下列职责中,不属于 API 网关承担范围的是。

A. 作为系统统一入口完成路由转发

B. 集中实施认证鉴权、限流与熔断

C. 完成协议转换与响应结果聚合

D. 承载各个微服务的核心业务逻辑实现

答案D解析

API 网关的定位是收敛横切关注点。它承担路由转发,按路径或域名把请求分发到后端服务;承担认证鉴权,在入口统一校验令牌,避免每个服务重复实现;承担限流与熔断,保护后端不被突发流量击穿;还承担协议转换与响应结果聚合,把一次前端请求拆分到多个后端服务并把结果合并返回。核心业务逻辑必须留在各自的服务内部,网关只做与业务无关的通用处理。若把业务逻辑下沉到网关,网关会退化为单体,既难以独立演进,也会重新形成单点瓶颈。故选 D。

19当下游服务持续失败时,熔断器会打开并直接返回降级结果。这一机制的主要作用是。

A. 提高数据库的写入吞吐量

B. 快速失败,避免故障级联导致调用方的线程等资源被耗尽

C. 保证跨服务之间的数据强一致性

D. 提升缓存的命中率

答案B解析

熔断器借鉴电路保险丝的思路,通常包含三个状态。闭合状态下请求正常放行;当失败率超过阈值时进入打开状态,后续请求不再发往故障服务,直接返回降级结果;经过一段冷却期后进入半开状态,放少量请求试探,成功则恢复闭合,失败则继续保持打开。它解决的核心问题是故障级联:若调用方持续等待一个已经失效的下游服务,线程池与连接池会被逐渐占满,故障沿调用链向上蔓延,最终拖垮整个系统。熔断器通过快速失败切断这条传导路径,为故障服务的恢复争取时间。选项 A、C、D 与其作用无关。故选 B。

20企业服务总线是面向服务的架构中的核心基础设施。在下列能力中,用于屏蔽异构系统差异、实现服务请求正确路由的是。

A. 数据持久化与备份

B. 前端页面渲染

C. 源代码编译与打包

D. 消息路由、协议转换与数据格式转换

答案D解析

企业服务总线用于把企业内部大量异构系统连接起来,这些系统可能使用不同的编程语言、不同的通信协议与不同的数据格式。其核心能力包括消息路由,依据内容或规则把请求转发到正确的服务提供者;协议转换,例如在 HTTP 与 JMS 之间做适配;数据格式转换,例如在 XML 与 JSON 之间做映射;此外还提供服务注册、流量控制与运行监控等能力。正是这些能力使得服务消费方与服务提供方不必了解对方的技术细节,从而实现屏蔽异构差异。选项 A、B、C 分别属于存储、展现与构建环节,都不是企业服务总线的职责。故选 D。

21在软件架构文档的 4+1 视图模型中,用于描述软件组件如何映射到硬件节点以及节点之间网络通信拓扑的视图是。

A. 逻辑视图

B. 开发视图

C. 进程视图

D. 部署视图

答案D解析

4+1 视图模型中各视图面向不同的关注点。逻辑视图面向最终用户与设计者,描述系统提供的功能与服务,通常用类图、对象图与通信图表达。开发视图面向程序员,描述代码的模块划分、包与库的组织,关注可维护性与可复用性。进程视图面向系统集成者,描述并发、同步与进程间通信,关注性能与吞吐量。部署视图面向系统工程师,描述软件如何映射到硬件节点以及节点之间的网络拓扑,关注可用性、可靠性与部署约束。场景视图用用例串联上述四个视图,用于验证架构是否满足关键需求。故选 D。

22某系统需要持续接收数据流,对每段数据独立施加一系列可复用的变换,且各变换之间不应相互感知。最适宜的架构风格是。

A. 管道过滤器风格

B. 事件驱动风格

C. 分层风格

D. 仓库风格

答案A解析

题干给出三个判据。其一,数据以流的形式持续输入,处理过程单向推进。其二,每段数据被独立处理,各处理单元之间不共享状态。其三,各变换可复用且互不感知,每个处理单元只关心自己的输入格式与输出格式。这三点正是管道过滤器风格的定义特征:系统被分解为若干过滤器,过滤器之间通过管道连接,上游输出经管道单向流向下游输入。该风格的优点是过滤器可独立开发、复用与重组,便于增量构建与并行执行;缺点是交互式处理能力弱,且不适合需要共享状态的场景。事件驱动风格以事件为中心,分层风格按抽象层次组织,仓库风格以共享数据为中心,均与题干不符。故选 A。

23软件架构设计的核心价值之一,在于把难以在代码层面把控的非功能需求转化为结构决策。关于架构与质量属性之间的关系,下列说法正确的是。

A. 质量属性完全由编码风格决定,与架构设计无关

B. 所有质量属性可以同时达到最优,不存在相互制约

C. 架构设计只影响功能需求的实现,不影响非功能需求

D. 性能、可用性与安全性等质量属性主要由架构决策决定,不同质量属性之间往往相互制约

答案D解析

软件架构之所以重要,是因为它把质量属性这类全局性的非功能需求落实为结构层面的决策。冗余结构决定可用性,分层与解耦决定可修改性,缓存策略与并发模型决定性能,认证授权的分布方式与加密的部署位置决定安全性。这些决策一经确定,后续很难通过局部编码调整来改变,因此架构阶段是干预质量属性成本最低的时机。同时质量属性之间存在制约关系,提高安全性往往以降低性能为代价,提高性能又可能损害可修改性,架构设计的过程实际上是围绕业务优先级做权衡。选项 A、B、C 分别否定了架构的作用或者忽视了属性之间的冲突。故选 D。

24表述性状态转移架构风格对服务端的会话状态有明确约束。该约束带来的主要好处是。

A. 服务端为每个用户保存会话上下文,便于实现个性化

B. 显著减少了网络传输的数据量

C. 服务端不保存请求之间的上下文,任一节点都能处理任一请求,便于水平扩展与故障恢复

D. 保证了跨服务调用的强一致性

答案C解析

无状态约束要求每个请求都携带服务端完成处理所需的全部信息,服务端在处理时不得依赖此前保存的会话状态。这一约束带来三方面收益。第一是可扩展性,由于任一请求都能被任意实例独立处理,增加节点即可线性提升处理能力,无需考虑会话粘滞。第二是可恢复性,实例失效后请求被转发到其他实例即可继续处理,不涉及会话迁移。第三是可简化性,服务端不必维护会话存储与过期清理逻辑。其代价是每个请求都要重复携带上下文信息,报文体积增大,且会话状态的管理责任转移到了客户端。选项 A 恰恰违背了无状态约束,选项 B 与事实相反,选项 D 与无状态无关。故选 C。

25在架构评审中,评审人员会把某些架构决策标记为权衡点。下列情形中,最符合权衡点定义的是。

A. 该决策只影响性能,且影响方向明确

B. 该决策同时改善一个质量属性,却恶化了另一个质量属性

C. 该决策与任何质量属性都无关

D. 该决策已被证明不存在任何风险

答案B解析

权衡点的定义是同时影响多个质量属性,且这些属性之间存在相互制约关系的架构决策。经典例子包括:为提高安全性而引入加解密,会增加计算开销并降低性能;为提高性能而广泛使用缓存,会引入数据一致性维护的复杂度,损害可修改性与可测试性;为提高可用性而增加冗余副本,会抬高成本并可能降低一致性。选项 A 描述的是敏感点,敏感点只涉及单一质量属性。选项 C 描述的决策不影响质量属性,谈不上权衡。选项 D 描述的是非风险点。判断权衡点的关键在于该决策是否同时牵动两个以上属性且方向相反。故选 B。

26某团队在设计评审中提出,为保证性能,把用户资料直接缓存在网关本地内存中,并由网关负责更新。该决策最可能引入的主要风险是。

A. 网关内存占用下降

B. 数据库压力急剧增大

C. 系统可用性自动提升

D. 多网关实例之间的缓存不一致,导致用户看到过期数据

答案D解析

把缓存放在网关本地内存意味着每个网关实例都持有一份独立副本。在网关多实例、多机房部署的常态下,任何一次用户资料更新都需要同步失效全部实例的本地缓存,而本地缓存通常缺乏高效的跨实例失效机制,于是不同实例对同一用户的资料可能得出不同结果,用户刷新页面时看到的资料会在新旧版本之间跳变。这是典型的以一致性换取性能的权衡,若业务对资料实时性有要求,就应当把缓存外置到共享缓存集群,或者只缓存变更频率极低且允许短暂过期的数据。选项 A 与事实相反,本地内存缓存会占用更多内存;选项 B 的推断不成立,缓存的本意是减轻数据库压力;选项 C 与该决策无必然联系。故选 D。

相关学习资料