POSA 并发/网络对象与分布式模式

共 37 题
#

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 管视图