# 1. Forwarder-Receiver、Client-Dispatcher、Server-Activator 在多层网络服务中的组合方式? A Client-Dispatcher 负责服务端激活,Server-Activator 负责客户端路由 B Forwarder-Receiver 负责服务发现 C Dispatcher 负责定位路由,Forwarder/Receiver 负责消息收发,Server-Activator 负责服务端激活,分层组合实现网络与业务分离 ✓ 正确答案 D 三者作用完全相同
# 2. Leader/Followers 模式的线程角色(leader/follower/processing)、handoffs 与避免共享队列的扩展性? A leader 同时负责监听与处理所有事件 B 所有线程共享一个队列 C leader 监听、follower 轮换、processing 处理,handoffs 交接,避免共享队列与锁竞争,提升扩展性 ✓ 正确答案 D 该模式无角色分工
# 3. Strangler Fig Pattern 的逐步替换、路由代理、双跑切换如何降低遗留系统迁移风险? A 逐步替换 + 路由代理分流 + 双跑对比验证,渐进绞杀遗留系统,降低迁移风险 ✓ 正确答案 B 一次性重写整个遗留系统 C 新老系统不能并存 D 双跑指只跑新系统
# 4. 为什么 POSA 3 强调“模式之间的桥接”,请举一个跨卷组合实例? A 架构是多个模式桥接组合的"模式语言",模式间通过接口与边界衔接,如 Broker 结合 Forwarder-Receiver 与 Half-Sync/Half-Async ✓ 正确答案 B 每个模式应独立使用,不需组合 C 模式之间必然冲突,无法桥接 D 桥接只存在于卷2
# 5. Acceptor-Connector 模式中网络服务中连接建立与业务处理的解耦设计? A Acceptor/Connector 负责连接建立与注册,Service Handler 负责业务处理,二者解耦便于复用与演进 ✓ 正确答案 B Acceptor 负责执行业务处理 C Connector 负责被动监听 D 连接建立与业务处理应耦合
# 6. CQRS 的命令/查询分离、读写模型、最终一致与同步策略在中等业务中的实现边界? A 所有业务都应使用 CQRS B CQRS 的读写模型必须强一致 C 写模型保业务规则、读模型保查询效率,事件投影同步并接受最终一致;简单 CRUD 用 CQRS 反而增加复杂度 ✓ 正确答案 D CQRS 只适用于大型系统
# 7. Circuit Breaker 的 closed/open/half-open 状态机、滑动窗口与半开探测如何配置防雪崩? A 滑动窗口统计最近窗口内失败率,超过阈值且达最小请求数触发 open,半开探测验证恢复,合理配置防雪崩 ✓ 正确答案 B 熔断器用全局累计统计 C half-open 放行全部请求 D 冷却时间无意义
# 8. Half-Sync/Half-Async 模式在网关和消息总线中的同步层/异步层/队列层职责划分? A 异步层处理业务,同步层处理 I/O B 三层都用同步阻塞 C 异步层管 I/O 事件、队列层缓冲解耦、同步层管业务处理,兼顾高并发与简单性 ✓ 正确答案 D 队列层可有可无
# 9. Index Table 模式在二级索引、跨分区查询、异步回填和一致性窗口中的设计? A 索引表支持按非分区键查询(二级索引),异步回填引入一致性窗口,需权衡回填方式与一致性 ✓ 正确答案 B 索引表用于按主键查询 C 索引表与主表必须强一致 D 异步回填无一致性窗口
# 10. Sharding 模式的分片键、rebalancing、热点与跨分片事务如何治理? A 分片键应选低基数并有偏的字段 B 再平衡无需迁移数据 C 分片键选均匀且支撑查询的字段,再平衡要平滑,热点用盐/虚拟节点/缓存治理,跨分片事务用 Saga/2PC 或避免 ✓ 正确答案 D 跨分片事务用本地事务即可
# 11. Active Object、Monitor Object、Half-Sync/Half-Async 的解耦与吞吐取舍? A Active Object 用同步方法调用,Monitor 用队列 B Monitor Object 用独立线程执行 C 三个模式都无开销 D Active Object 队列异步解耦、Monitor 锁+条件保证线程安全、Half-Sync/Half-Async 异步 I/O+队列,取舍是解耦程度与并发开销 ✓ 正确答案
# 12. Asynchronous Request-Reply 模式在长任务、状态查询、回调 URL 与消息关联中的实现? A 客户端必须阻塞等待长任务完成 B 无需关联 ID C 服务端异步处理,客户端用关联 ID 轮询状态或接收回调,实现长任务不阻塞 ✓ 正确答案 D 该模式只用于短任务
# 13. Claim Check 模式在大消息、消息体外部存储与一致性链路的设计要点? A 大消息体直接放入队列 B 无需管理消息体生命周期 C 票据是消息本身 D 大消息体存外部存储,队列传引用票据,消费端取回;需保证消息体与票据的一致性并管理消息体生命周期 ✓ 正确答案
# 14. Compute Resource Consolidation 在多租户/批/流任务调度中的资源争用与隔离? A 整合共享资源无需隔离 B 共享资源池提高利用率,但需资源配额、优先级、公平调度与隔离处理好批/流/多租户的资源争用 ✓ 正确答案 C 批任务与流任务无需调度 D 资源争用无影响
# 15. Data Consistency 模式(强/最终/弱)在订单、库存、推荐、社交关系中如何选型? A 库存扣减可容忍超卖 B 所有业务都用强一致 C 所有业务都用最终一致 D 订单、库存扣减需要强一致,推荐、社交可容忍最终一致 ✓ 正确答案
# 16. Resource Lifecycle Manager、Lookup、Object Lifetime、Release Pool 模式在资源池与对象回收中的实现? A Resource Lifecycle Manager 统一管理资源生命周期,Release Pool 池化复用,Lookup 提供获取,避免泄漏与创建开销 ✓ 正确答案 B 资源应每次新建,无需池化 C Lookup 负责销毁资源 D 对象生命周期无需管理
# 17. Retry 模式的指数退避、抖动、幂等判定与“最大重试次数”应如何选型? A 重试应无限进行 B 重试无需考虑幂等 C 所有错误都应重试 D 指数退避 + 抖动错开重试,幂等判定可重试性,设置最大重试次数并配合熔断 ✓ 正确答案
# 18. Valet Key 模式在临时凭据、对象存储直传、移动端上传的安全性与生命周期设计? A 客户端用主密钥直传对象存储 B 后端必须中转所有数据 C 凭据可永久有效 D 用临时受限凭据(预签名 URL/SAS)让客户端直传直读,后端不中转,最小权限、限范围、限有效期、可撤销 ✓ 正确答案
# 19. Reactor 与 Proactor 模式中事件驱动 I/O 的两种模型在 NIO/Netty 中的应用差异? A Reactor 是就绪通知(就绪后自己做 I/O),Proactor 是完成通知(内核完成 I/O 后回调),Netty 用 Reactor ✓ 正确答案 B Reactor 是完成通知,Proactor 是就绪通知 C 两者完全相同 D Netty 用 Proactor
# 20. Thread-Specific Storage 中如何避免线程池中 ThreadLocal 的串扰与内存泄漏? A 线程池中 ThreadLocal 无需清理 B 线程池复用导致 ThreadLocal 串扰与内存泄漏,需在任务结束或线程归还时 remove 清理 ✓ 正确答案 C ThreadLocal 不会泄漏 D 线程池线程不会复用
# 21. Ambassador Pattern 在代理外部连接、重试/限流/观测与 Sidecar 的关系? A Ambassador 在应用内实现重试限流 B Ambassador 只做认证 C Ambassador 与 Sidecar 无关 D Ambassador 作为进程外代理,代表应用代理外部连接并处理重试/限流/观测,常以 Sidecar 形态部署 ✓ 正确答案
# 22. Bulkhead Pattern 的线程池/连接池隔离、超时回退、降级开关如何在微服务中实现? A 为每个依赖独立线程池/连接池隔离,超时回退 + 降级开关兜底,故障不影响其他依赖 ✓ 正确答案 B 所有依赖共享一个线程池 C 超时后应无限等待 D 降级开关只在故障时手动开
# 23. POSA 3 中的 Resource Acquisition Is Initialization 模式在分布式事务中如何被借鉴? A RAII 的"资源随作用域自动释放"思想被借鉴为事务/资源随作用域自动提交或回滚/补偿,避免泄漏 ✓ 正确答案 B RAII 与分布式事务无关 C 资源应手动释放,不需 RAII D 异常时资源不释放
# 24. Pipes-and-Filters、Choreography vs Orchestration 在微服务编排中的可观测性与事务边界? A Choreography 有中心协调器,可观测性好 B 三者可观测性相同 C Pipes-and-Filters 无法复用过滤器 D Orchestration 有中心协调器,流程集中、事务边界清晰、可观测性好;Choreography 解耦但追踪难、事务边界分散 ✓ 正确答案
# 25. Sidecar Pattern 在服务网格、日志/代理、安全代理与多语言异构中的部署模型? A Sidecar 必须在主应用内实现 B Sidecar 与语言强相关 C Sidecar 只能用于日志 D Sidecar 作为旁路容器提供服务网格、日志/安全代理与语言无关能力,主应用无需改代码,但增加资源开销 ✓ 正确答案
# 26. Throttling 模式在网关、用户、租户三层的配额设计与令牌桶/漏桶/滑动窗口选择? A 令牌桶按固定速率消费,输出恒定 B 网关/用户/租户三层配额,令牌桶允许突发、漏桶平滑输出、滑动窗口精确计数,按需求选算法 ✓ 正确答案 C 只需网关层限流 D 所有算法等价
# 27. Component Configurator、Reconciliation、Scheduler-Activation 模式在分布式组件生命周期中的作用? A Configurator 管状态调和,Reconciliation 管动态配置 B Reconciliation 只做一次 C Component Configurator 管动态配置组装,Reconciliation 管期望状态收敛(自愈),Scheduler-Activation 管调度激活 ✓ 正确答案 D 三者作用相同
# 28. Event Sourcing 的事件流、快照、投影、回放、版本化与 schema 演进如何设计? A 事件应可变以支持修改 B 事件流不可变、快照加速重放、投影读模型、回放重建,schema 演进需向后兼容并支持版本迁移 ✓ 正确答案 C 投影与回放无关 D schema 演进无需兼容
# 29. Externalized Configuration 在配置中心、版本回滚、灰度与密钥轮换上的工程要点? A 配置应硬编码在代码中 B 配置中心集中管理配置,支持动态下发、版本回滚、灰度与密钥轮换,配置与代码解耦 ✓ 正确答案 C 配置无需版本管理 D 密钥不需加密
# 30. Idempotency Key 模式在客户端重试、网关去重、消息去重与跨链路去重的设计? A 幂等键无意义,重复提交无法识别 B 幂等键只用于客户端 C 用唯一键标识操作,客户端重试、网关去重、消息去重、跨链路去重都基于同一键识别重复并返回首次结果 ✓ 正确答案 D 跨链路用不同幂等键
# 31. Leader Election 模式在 etcd/ZooKeeper/Consul 上的租约、心跳、脑裂预防? A 网络分区时可能选出多个 leader B 通过租约 + 心跳维持 leader,共识(多数派)保证全局唯一 leader,网络分区时少数派无法当选,预防脑裂 ✓ 正确答案 C 租约过期后不会重新选举 D 脑裂无法预防
# 32. POSA 2,并发与网络对象模式 在主流实现中的标准做法与典型反模式? A 高并发网络应使用阻塞 I/O B 标准做法是事件驱动非阻塞 I/O + 关注点分离 + 合理锁粒度,反模式是阻塞 I/O、粗粒度锁、网络与业务耦合 ✓ 正确答案 C 全局锁是好的做法 D 业务与网络应耦合
# 33. POSA 3 中分布式与资源管理模式 在主流实现中的标准做法与典型反模式? A 资源应直接创建不池化 B 缓存无需治理 C 单点无问题 D 标准做法是资源池化 + 生命周期管理 + 分布式协同(锁/选举)+ 缓存 + 复制分片,反模式是资源泄漏、锁竞争、缓存滥用、单点 ✓ 正确答案
# 34. Pipes-and-Filters、Microkernel 模式在中间件、ESB、内核总线中的设计差异? A Pipes-and-Filters 是数据流经过滤器的处理链,Microkernel 是核心 + 插件扩展,中间件/ESB 常结合二者 ✓ 正确答案 B Pipes-and-Filters 强调核心最小化,Microkernel 强调处理链 C 两者完全相同 D Microkernel 用过滤器链
# 35. Publisher/Subscriber 与 Event Sourcing 在最终一致、回放、订阅者容量与版本管理上的取舍? A 两者都天然支持回放 B Event Sourcing 事件是事实源、可回放、需严格版本管理;Publisher/Subscriber 偏解耦通信,若事件不持久则难回放 ✓ 正确答案 C 两者都无需版本管理 D Event Sourcing 不能回放
# 36. Scheduler Agent Supervisor 模式在分布式任务、长时作业、补偿、重试与监控中的角色分工? A Scheduler 执行任务,Agent 调度 B Supervisor 只负责调度 C Scheduler 调度、Agent 执行、Supervisor 监管(补偿/重试/监控),三者分工管理分布式任务生命周期 ✓ 正确答案 D 补偿由 Agent 完成
# 37. View Handler、Whole-Part、Master-Slave、Proxy、Publisher-Subscriber 在 POSA 3 中的分布式语义? A Master-Slave 用于事件解耦 B Whole-Part 管聚合组合、Master-Slave 管主从复制、Proxy 管远程/访问代理、Publisher-Subscriber 管事件解耦、View Handler 管视图 ✓ 正确答案 C Proxy 管主从复制 D Publisher-Subscriber 管视图