# 2. Bulkhead 模式与 Resilience4j 线程池隔离在多租户 SaaS 平台的资源配额设计 A 用线程池隔离为租户分配独立资源,一个租户故障不影响其他租户 ✓ 正确答案 B 所有租户共享资源 C 隔离无法实现配额 D Bulkhead 只用于单租户
# 3. Bulkhead 模式在 Resilience4j 与 Spring Cloud Gateway 中的线程池隔离与信号量隔离选型 A 信号量隔离更彻底 B 线程池隔离彻底但开销大,信号量隔离轻量但隔离弱,按调用耗时选择 ✓ 正确答案 C 线程池隔离开销小 D 二者无差异
# 4. CAP 定理与 BASE 理论 A CAP 只适用于单机 B 分区时 C 与 A 可兼得 C BASE 是强一致 D 分区时在一致性 C 与可用性 A 间二选一,BASE 是一种最终一致策略 ✓ 正确答案
# 5. CQRS + Event Sourcing 在金融交易系统中的读写模型分离与最终一致性权衡 A 读写模型强一致 B 读写分离、事件可审计,最终一致需用幂等与补偿保证 ✓ 正确答案 C 事件溯源不可审计 D 无需处理最终一致
# 6. CQRS 分离读写模型后会引入多长的最终一致窗口,产品体验与监控应如何表达这种延迟 A 读写模型瞬间一致 B 读模型异步更新引入一致延迟,需产品提示与监控读模型滞后 ✓ 正确答案 C 无需监控一致延迟 D 产品无需提示
# 7. CQRS 架构中读模型与写模型的最终一致性在 Kafka 事件溯源下的延迟补偿策略 A 顺序无关紧要 B 事件丢失可接受 C 读模型无需追上 D 用消费组保证顺序、重试/死信补偿、读己之写缓解读模型滞后 ✓ 正确答案
# 9. CQRS(命令查询职责分离)与 Event Sourcing A CQRS 用事件溯源 B 二者必须绑定 C ES 是读写分离 D CQRS 分离读写,ES 用事件表达状态,组合实现可审计可扩展架构 ✓ 正确答案
# 10. Cell-based Architecture 如何限制故障爆炸半径,租户路由与跨 Cell 数据访问怎样设计 A Cell 无法隔离故障 B 所有租户共享一个 Cell C 跨 Cell 访问是推荐做法 D 每个 Cell 自包含并隔离故障,租户路由到所属 Cell,避免跨 Cell 破坏隔离 ✓ 正确答案
# 11. EDA 事件驱动架构在 Outbox 模式、Change Data Capture 与消息中间件协同时的最终一致性工程要点 A 事件可丢失 B Outbox 保证业务与事件原子一致,CDC 捕获变更,消息中间件可靠投递 ✓ 正确答案 C Outbox 与事务无关 D CDC 无需消息中间件
# 12. Outbox Pattern 在 Spring Boot 中与 Debezium CDC 协同的事务一致性保障 A 双写天然一致 B Outbox 无法保证原子性 C Debezium 与事件无关 D Outbox 用本地事务保证业务与事件原子,Debezium 捕获并投递事件 ✓ 正确答案
# 13. SOA(面向服务架构)与微服务的差异 A 二者完全相同 B SOA 粒度大、依赖 ESB 与共享数据,微服务粒度小、独立部署与数据自治 ✓ 正确答案 C 微服务依赖 ESB D SOA 独立部署
# 14. Saga 与 TCC 的适用边界如何划分,长事务、资源预留成本与补偿可行性如何影响选型 A Saga 适合长事务可补偿,TCC 适合短事务需资源预留 ✓ 正确答案 B 二者无差异 C TCC 适合长事务 D Saga 适合资源预留
# 15. CQRS 架构中读写模型分离时,跨模型数据一致性、回填链路与查询性能折衷如何在 Spring/Quarkus 中落地 A 回填无需幂等 B 读写模型实时一致 C 事件驱动跨模型一致,回填需幂等,读模型按查询优化牺牲一致性 ✓ 正确答案 D 查询无需优化
# 16. Saga 模式与分布式事务 A Saga 强一致 B Saga 用全局锁 C Saga 用本地事务 + 补偿实现分布式事务的最终一致,替代 2PC ✓ 正确答案 D Saga 是 2PC 的变体
# 17. Saga 的编排式与协同式实现如何权衡可见性和耦合,补偿失败由谁持续推进 A 协同式可见性好 B 编排式耦合高 C 编排式集中可见性但协调器单点,协同式解耦但难追踪,补偿失败靠协调器或事件重试 ✓ 正确答案 D 补偿失败无人推进
# 18. Saga 编排式与协调式在 Spring Cloud Alibaba Seata 中的事务回滚与补偿机制实现 A Seata 无补偿机制 B Seata 用状态机编排 Saga,失败时执行补偿动作实现回滚 ✓ 正确答案 C Saga 用全局锁 D Seata 只支持 AT 模式
# 19. Seata AT 模式如何基于本地事务与 undo log 实现自动补偿,与 TCC 模式在侵入性、隔离性与性能上的实现差异 A AT 用 undo log 自动补偿侵入低,TCC 手写 Try/Confirm/Cancel 侵入高 ✓ 正确答案 B 二者侵入性相同 C AT 无需 undo log D TCC 自动补偿
# 20. Service Mesh 在 Spring Cloud 微服务中与传统 SDK(OpenFeign + Hystrix) A 二者完全相同 B Mesh 侵入应用 C SDK 无侵入 D Mesh 用 Sidecar 代理下沉网络治理、无侵入,SDK 嵌入应用、侵入且语言绑定 ✓ 正确答案
# 21. Strangler Fig 模式在 Spring Boot 单体应用逐步拆分微服务时的数据双写与切换策略 A 一次性替换全部 B 渐进替换功能,数据双写保一致,流量灰度切换并支持回退 ✓ 正确答案 C 无需数据双写 D 切换不可回退
# 22. TCC 模式的 Try/Confirm/Cancel 如何保证业务最终一致,空回滚、幂等与悬挂问题分别如何产生与防范 A 悬挂无害 B Confirm 可重复执行 C 空回滚无需处理 D 用事务 ID 去重保证幂等,判断 Try 状态防空回滚,状态机防悬挂 ✓ 正确答案
# 23. 三阶段提交(3PC)引入 CanCommit 阶段与超时机制如何缓解 2PC 的阻塞问题,为何仍无法在分区下保证一致性 A 3PC 分区下可保证一致 B 3PC 完全解决阻塞 C 3PC 用 CanCommit 与超时缓解阻塞,但分区下仍无法保证原子一致 ✓ 正确答案 D 3PC 与 2PC 相同
# 25. 两阶段提交(2PC)的准备与提交阶段如何工作,协调者单点、同步阻塞与数据不一致缺陷为何难以根除 A 协调者故障不影响 B 2PC 无缺陷 C 协调者单点、参与者阻塞、分区下数据不一致,CAP 限制下难以根除 ✓ 正确答案 D 2PC 不阻塞
# 26. 事件溯源(Event Sourcing)架构下,事件 schema 演进与老事件重放之间的兼容策略有哪些工程范式 A 用只增不改、版本化、事件升级器保证老事件可被新代码重放 ✓ 正确答案 B 老事件无法重放 C 删改字段即可 D 无需版本化
# 28. 事件驱动架构采用至少一次投递时,消费者幂等、事件顺序和模式演进应如何共同设计 A 消费者幂等去重、分区保证顺序、版本化兼容演进,共同保证正确性 ✓ 正确答案 B 重复投递无害 C 顺序无关紧要 D 无需版本兼容
# 29. 事件驱动架构(EDA)在 Kafka 4.x + Spring Cloud Stream 下的 Exactly-Once 语义保障 A Kafka 事务实现 EOS,但跨系统仍需业务幂等 ✓ 正确答案 B EOS 保证跨系统一致 C EOS 无需幂等 D EOS 无性能开销
# 30. 事务发件箱如何原子记录领域变化与待发事件,发布成功后的清理和重复投递怎样处理 A 发布后无需清理 B 领域变化与事件独立提交 C 本地事务原子记录领域变化与事件,发布后标记清理,消费者幂等处理重复 ✓ 正确答案 D 重复投递无需处理
# 31. 云原生时代的 12-Factor App 与 Spring Boot 4.0 默认配置的兼容性差异点 A Spring Boot 支持外部化配置与 stdout 日志,但需显式配置无状态化与健康检查 ✓ 正确答案 B Spring Boot 完全不符合 12-Factor C 无需处理会话状态 D 12-Factor 与云原生无关
# 32. 从模块化单体拆微服务时,应依据数据所有权和独立变更率还是代码行数确定服务边界 A 变更率无关 B 代码行数决定边界 C 共享数据库利于拆分 D 依据数据所有权与独立变更率确定边界,而非代码行数 ✓ 正确答案
# 33. 六边形架构如何让领域核心只依赖端口,数据库适配器与消息适配器的事务边界应放在哪里 A 事务与适配器无关 B 领域核心管理事务 C 适配器不管理事务 D 领域只依赖端口,事务边界放在数据库/消息适配器层 ✓ 正确答案
# 34. 六边形架构(Ports & Adapters)在 Spring Boot 3.x 下的边界划分、依赖倒置与单元测试友好的具体实践 A 测试需真实数据库 B 领域依赖具体实现 C 领域依赖端口接口,适配器实现,测试用桩适配器不依赖基础设施 ✓ 正确答案 D 适配器在领域层
# 35. 分层架构(Layered)中表现层调用领域服务的边界在 Spring Boot 4.0 模块化下如何重构 A 模块化无边界 B 表现层直接访问领域内部 C 表现层通过应用服务调用领域,模块化后边界清晰、领域不暴露内部 ✓ 正确答案 D 领域暴露给表现层
# 36. 在 Spring Boot 4.0 中实现 Choreography Saga 时各模块通过 Kafka 事件解耦的版本兼容策略 A 事件无需版本 B 事件 schema 版本化、只增不改、契约管理,保证独立演进时协作正确 ✓ 正确答案 C 各服务必须同步发布 D 版本兼容无必要
# 37. 在 Spring Boot 4.0 中实现 Sidecar 模式与 K8s Native Sidecar 在跨语言服务协同中的取舍 A K8s Native Sidecar 语言无关、由 K8s 管理,适合跨语言通用能力 ✓ 正确答案 B K8s Native Sidecar 绑定语言 C 应用内 Sidecar 无侵入 D 跨语言协同需应用内实现
# 38. 干净架构(Clean Architecture)的同心圆分层在 Spring Boot 4.0 模块化中的依赖管理 A 内层依赖框架 B 内层依赖外层 C 依赖方向随意 D 依赖方向指向内层,用模块边界强制,内层不依赖框架 ✓ 正确答案
# 39. 微内核加载第三方插件时,如何隔离类加载器、权限、资源配额和插件版本依赖 A 插件无需权限限制 B 插件共享类加载器 C 用独立类加载器、权限沙箱、资源配额与版本管理隔离插件 ✓ 正确答案 D 版本冲突无害
# 40. 微内核架构(Microkernel)在 Spring Boot Plugin SPI 与 Java ServiceLoader 中的实现差异 A ServiceLoader 依赖 Spring B 二者完全相同 C ServiceLoader 轻量标准,Spring Boot SPI 集成 Spring 生态,按需选择 ✓ 正确答案 D Spring SPI 无 Spring 依赖
# 41. 微服务架构与模块化单体(Modular Monolith) A 微服务部署简单 B 二者完全相同 C 模块化单体无模块边界 D 模块化单体保留模块边界但单部署,是微服务的前置形态,按规模权衡 ✓ 正确答案
# 44. 线程池、信号量与连接池的隔离粒度与故障域爆炸半径如何权衡 A 隔离粒度越细,故障爆炸半径越小但资源开销越大,按关键路径权衡 ✓ 正确答案 B 隔离粒度与故障无关 C 粗隔离更彻底 D 信号量隔离最彻底
# 45. ADR(架构决策记录)在企业架构治理中的版本化与审查流程 A ADR 与治理无关 B ADR 无需版本化 C 决策无需审查 D ADR 版本化记录决策演进,审查流程保证决策质量与可追溯 ✓ 正确答案
# 46. BFF 按客户端拆分接口可减少前端编排,但多个 BFF 复制业务规则时如何治理 A BFF 承载所有业务规则 B 业务规则下沉共享服务,BFF 只做编排裁剪,避免多 BFF 复制规则 ✓ 正确答案 C 各 BFF 独立复制规则 D 规则无需统一
# 47. Backend for Frontend(BFF)的边界 A BFF 只做前端适配与编排,业务规则下沉后端 ✓ 正确答案 B BFF 承载业务规则 C BFF 有状态 D BFF 与前端无关
# 49. Circuit Breaker 模式与 Resilience4j A 失败率无关 B 熔断器只打开不恢复 C 熔断器按失败率在关闭/打开/半开间转移,防止故障级联 ✓ 正确答案 D 熔断保护下游
# 50. EDA(事件驱动架构)与 EDA 2.0 的演进 A EDA 2.0 强调事件建模、契约管理与事件溯源,事件成为业务资产 ✓ 正确答案 B EDA 2.0 与 EDA 相同 C EDA 2.0 用于同步通信 D 事件只是传输载体
# 52. Monorepo 与 Polyrepo 的架构影响 A Monorepo 统一构建与依赖、利于协作,Polyrepo 独立版本与权限、跨项目难 ✓ 正确答案 B Monorepo 版本独立 C Polyrepo 统一构建 D 二者无差异
# 53. Pipeline 架构与责任链模式在订单处理链中的可观测性与超时传播设计 A 超时无需传播 B 无法观测链路 C trace 串联各阶段观测,阶段超时 + 总时限控制链并中止慢链 ✓ 正确答案 D 总时限无意义
# 54. Pipeline 架构与责任链的差异 A Pipeline 可短路 B 二者完全相同 C Pipeline 是数据加工流水线全阶段执行,责任链是拦截链可短路 ✓ 正确答案 D 责任链全阶段执行
# 55. Sidecar 把网络治理移出应用后会增加哪些延迟与资源开销,无代理服务网格又改变什么 A Sidecar 无开销 B Sidecar 增加跳数与资源开销,无代理减少开销但牺牲无侵入 ✓ 正确答案 C 无代理增加延迟 D 二者相同
# 56. Sidecar 模式与 Service Mesh A Sidecar 是架构 B 二者无关 C Service Mesh 无 Sidecar D Service Mesh 用 Sidecar 代理下沉网络治理,Sidecar 是数据面载体 ✓ 正确答案
# 57. Strangler Fig Pattern 在遗留系统迁移到微服务时的渐进式重构路径与风险 A 一次性替换 B 渐进迁移,风险在数据双写一致、兼容与长尾,用灰度与回退控制 ✓ 正确答案 C 无需数据同步 D 无迁移风险
# 58. 事件驱动架构(Event-Driven)的事件契约版本管理与死信处理,如何避免事件风暴与隐式依赖 A 版本契约管理、死信处理、风暴控制与显式依赖避免事件失控 ✓ 正确答案 B 事件无需版本 C 死信无必要 D 事件风暴无害
# 59. 六边形架构(Hexagonal/Ports and Adapters) A 核心依赖端口抽象,适配器接外部,核心技术无关、可测试 ✓ 正确答案 B 核心依赖具体技术 C 适配器在核心 D 端口与外部无关
# 61. 在 Spring Cloud Gateway 中实现 Backend For Frontend(BFF) A 用路由与过滤器实现聚合、裁剪与适配,网关保持薄 ✓ 正确答案 B 网关承载业务规则 C 网关无路由能力 D BFF 与网关无关
# 62. 如何把模块依赖、延迟预算和恢复目标转化为自动化架构适应度函数并纳入流水线 A 用 ArchUnit、压测、故障演练自动验证依赖/延迟/恢复约束,纳入流水线门禁 ✓ 正确答案 B 架构约束靠人工检查 C 适应度函数无法自动化 D 无需纳入流水线
# 65. 整洁架构要求依赖指向内层,但 DTO、注解和框架异常跨层传播时如何防止实现细节泄漏 A 框架异常泄漏到内层 B 领域对象直接暴露 C 用 DTO 映射、注解隔离、异常转换,让内层不依赖框架细节 ✓ 正确答案 D 领域层用框架注解
# 67. 架构决策记录如何包含约束、替代方案和退出条件,何时应重新评估而不是永久沿用 A ADR 记录约束、替代方案与退出条件,假设变化时重新评估 ✓ 正确答案 B ADR 永久适用 C 退出条件无必要 D 决策不可复议
# 69. 架构原则(Architecture Principles)如何转化为可执行的架构适应度函数并防止被空泛化 A 原则靠口号 B 原则无需度量 C 原则转化为可度量、可自动检查的适应度函数并设门禁,防空泛 ✓ 正确答案 D 适应度函数无法落地
# 71. 架构演进的版本管理如何做(兼容策略/迁移路径/废弃周期),破坏性变更如何协调各方? A 破坏性变更直接切换 B 兼容优先、提供迁移路径、明确废弃周期,破坏性变更提前公告分阶段 ✓ 正确答案 C 无需迁移路径 D 废弃无需周期
# 72. 架构评审(Architecture Review)的工程实践 A 评审以问题为导向,覆盖依赖、性能、安全,用 ADR 记录并结合自动化 ✓ 正确答案 B 评审凭喜好 C 评审无需记录 D 架构评审一次即可
# 73. 模块化单体如何用 Spring Modulith 验证模块依赖、测试边界并观察跨模块事件 A 跨模块事件不可观察 B 模块边界无法验证 C 验证模块依赖无循环、测试模块边界、观察跨模块事件 ✓ 正确答案 D Modulith 与模块无关
# 74. 系统瓶颈快速定位的思路是什么,从指标-日志-追踪的排障顺序到压测验证如何闭环? A 压测无必要 B 只看日志 C 指标定位层、日志定位因、追踪定位链路、压测验证,形成闭环 ✓ 正确答案 D 追踪最后看
# 75. 系统设计的"4S"方法(Scenario/Service/Storage/Scalability) A 4S 按场景、服务、存储、扩展展开系统设计 ✓ 正确答案 B 4S 只关注存储 C 4S 无场景 D 4S 不考虑扩展
# 76. 系统设计的非功能性需求(NFR),包括性能/可用/扩展/安全 A NFR 无需量化 B NFR 涵盖性能、可用、扩展、安全,需量化并在架构中体现 ✓ 正确答案 C NFR 与架构无关 D 只关注功能
# 78. 跨地域主动主动架构如何处理写入归属、冲突解决和读己之写,哪些业务不适合多主 A 所有业务都适合多主 B 主动主动强一致 C 无需冲突解决 D 需处理写入归属、冲突解决与读己之写,强一致或写冲突多的业务不适合 ✓ 正确答案
# 80. Pipeline / 编排型架构(如 Temporal / Camunda) A 编排型只适合短流程 B 工作流无状态 C 无法重试 D 工作流引擎(Temporal/Camunda)编排流程,支持状态、重试与补偿 ✓ 正确答案
# 81. 事件溯源系统如何选择快照频率并验证重放确定性,事件模式升级后旧历史怎样兼容 A 重放无需确定 B 快照越多越好 C 快照频率权衡存储与重建,确定性验证重放,版本化兼容旧事件 ✓ 正确答案 D 旧事件无法兼容
# 82. 在 GraalVM Native Image 下使用 Spring Modulith 构建事件驱动架构的反射配置最小集 A 反射自动处理 B 需注册事件类、监听器与序列化的反射 hint ✓ 正确答案 C 事件无需反射 D Native Image 支持所有反射
# 83. 性能/可用性/扩展性的 SLI/SLO/SLA A SLI 与 SLO 相同 B SLI 度量、SLO 目标、SLA 协议,性能/可用/扩展各有指标 ✓ 正确答案 C SLA 是内部指标 D 扩展性无 SLO
# 85. 绞杀者模式迁移旧系统时,流量路由、数据双写和回退开关应按什么顺序演进 A 无需数据双写 B 先切流量再双写 C 无需回退开关 D 先数据双写,再小流量路由,后放大并保留回退开关 ✓ 正确答案