本页目录 · 14 节
- 一、分值定位
- 二、SOA 与 Web 服务
- 2.1 SOA 三要素
- 2.2 三大技术标准(论文与选择题双高频)
- 2.3 REST 与 RESTful
- 2.4 ESB(企业服务总线)
- 三、企业应用集成(EAI)
- 四、中间件
- 五、微服务与 DDD
- 5.1 微服务 vs SOA(必背对比)
- 5.2 服务治理的"四件套"
- 5.3 DDD 与架构模式
- 六、云原生
- 七、缓存(案例最爱的"三问")
- 7.1 Redis 三大经典问题
- 7.2 双写一致性(案例必考)
- 7.3 Redis 其他考点
- 7.4 超卖与并发控制
- 八、大数据流处理与消息队列
- 九、负载均衡、CDN、边缘计算
- 十、跨年真题定位索引
- 十一、典型陷阱
- 十二、答题模板
- 模板 A:案例"缓存问题三连"(最高频,10 分钟拿满 15 分)
- 模板 B:案例"双写一致性"(必给读写步骤)
- 模板 C:论文"论微服务/云原生/高并发"
- 十三、自测清单
- 十四、来源与可信度
知识域 05 · 分布式架构、微服务与云原生
题号指向
../01-年份索引/<年份>-套卷.md。标记:〔核〕/〔推〕/〔存疑〕。
一、分值定位
| 科目 | 频率 | 形态 |
|---|---|---|
| 综合知识 | 每套 6—12 题(10—19 分),近年权重最高的域 | Web 服务标准、REST、微服务治理、云原生、缓存机制、边缘计算 |
| 案例分析 | 必有一道选做题,且常为"最容易拿分"的那道 | Redis 缓存三问、分布式锁、Lambda/Kappa、限界上下文 |
| 论文 | 最高频出题方向(云原生、Serverless、微服务、高并发秒杀、负载均衡、SOA、边缘计算、DevOps) | 几乎每年至少 1 题 |
结论:这个域决定你能不能过。2020 年之后,命题重心明显从"架构风格/评估"向"分布式与云原生"迁移,2025—2026 尤其明显(AI 相关也常挂在这里考)。
二、SOA 与 Web 服务
2.1 SOA 三要素
- 服务:粗粒度、松耦合、可编排、契约化(接口与实现分离);
- 服务注册与发现:服务提供者在注册中心发布,消费者查找;
- 编排(Orchestration)/ 编制(Choreography):前者有中心控制器(BPEL),后者去中心、事件驱动。
2.2 三大技术标准(论文与选择题双高频)
| 标准 | 全称 | 作用 | 关键内容 |
|---|---|---|---|
| UDDI | 统一描述、发现与集成协议 | 服务注册与发现 | 基于 XML/HTTP/DNS;全球注册体系;早期采用 SOAP |
| WSDL | Web 服务描述语言 | 服务描述(接口定义) | 三属性:做什么(操作)、如何访问(数据格式与协议)、位于何处(URL);以"端口集合"描述服务 |
| SOAP | 简单对象访问协议 | 消息传输(基于 XML) | 四部分:封装 Envelope、编码规则 Encoding Rules、RPC 表示、绑定 Binding |
母题(2018 下论文三解析):SOA 的主要技术是 Web 服务 + ESB,标准是 UDDI/WSDL/SOAP。
真题:2026 下 25(WSDL)、2024 下 23(SOAP)、2024 下 32(WSDL)、2024 上 29(服务发现)。
2.3 REST 与 RESTful
- 六大约束:客户端-服务器、无状态、可缓存、统一接口、分层系统、按需代码(可选)。
- 与 SOAP 对比:REST 轻量、基于 HTTP 动词与资源 URI、易缓存;SOAP 有严格契约(WSDL)、支持 WS-Security/事务,适合企业级。
- 真题:2024 上 56(REST 约束)、2025 上 28(REST API)、2022 下 13(HTTP/HTTPS)。
2.4 ESB(企业服务总线)
功能:位置透明(服务消费者无需知道提供者地址)、协议转换、消息路由、数据格式转换、消息增强、安全与监控、服务编排。
真题:2019 下 49—50、2018 下案例五(SOA/ESB 填空)。案例五答案要点:ESB 承担"服务注册、协议转换、消息路由",各系统通过适配器接入总线,避免点对点网状调用。
三、企业应用集成(EAI)
| 集成层次 | 集成点 | 特点 | 难度 |
|---|---|---|---|
| 表示集成(界面集成) | 用户界面层 | 黑盒,最快,最不灵活 | 低 |
| 数据集成 | 数据库/文件 | 直接共享数据,耦合高、一致性风险大 | 中 |
| 功能集成(API/业务逻辑) | 应用接口 | 通过 API/消息调用 | 中高 |
| 业务过程集成 | 流程层 | 跨系统流程编排,价值最高 | 高 |
| 门户集成 | 统一门户 | 单点登录、聚合展示 | 中 |
真题:2024 下 50/54、2024 上 58、2019 下 20—21、2020 下论文四、2021 下论文三。
四、中间件
定义:位于操作系统与应用之间,屏蔽底层异构性,提供连接与通信、事务、消息等共性服务。
| 类型 | 作用 | 代表 |
|---|---|---|
| 数据库访问中间件 | 统一数据库访问 | ODBC/JDBC |
| 远程过程调用(RPC)中间件 | 跨进程/跨机调用像本地调用 | RMI、gRPC、Dubbo |
| 面向消息中间件(MOM) | 异步解耦、削峰填谷、可靠传输 | Kafka、RabbitMQ、RocketMQ |
| 事务中间件 | 分布式事务(两阶段提交) | Tuxedo |
| 分布式对象中间件 | 对象跨网络调用 | CORBA、EJB |
| 门户中间件 | 集成展示 | Portal |
真题:2022 下 27、2020 下 36—38、2021 下 36(构件交互问题)。
五、微服务与 DDD
5.1 微服务 vs SOA(必背对比)
| 维度 | SOA | 微服务 |
|---|---|---|
| 粒度 | 粗(企业级服务) | 细(业务能力级) |
| 通信 | ESB / SOAP / 重量级 | 轻量(REST/RPC/消息)、点对点 |
| 数据 | 常共享数据库 | 每个服务独立数据库 |
| 治理 | 集中式(ESB、注册中心) | 去中心化(服务自治) |
| 部署 | 集中部署 | 独立部署、独立伸缩 |
| 基础设施 | 重 | 容器 + 编排 + DevOps |
真题:2022 下 32、2025 下 66、2021 下论文四。
5.2 服务治理的"四件套"
| 能力 | 解决的问题 | 典型实现 |
|---|---|---|
| 服务注册与发现 | 服务地址动态变化 | Nacos、Consul、Eureka |
| 负载均衡 | 流量分摊 | 客户端 LB(Ribbon)、服务端 LB(Nginx/LVS) |
| 熔断/降级/限流 | 防止雪崩 | Sentinel、Hystrix |
| 网关 | 统一鉴权、路由、限流 | Spring Cloud Gateway、Kong |
| 链路追踪 | 跨服务问题定位 | SkyWalking、Zipkin |
雪崩三兄弟(2026 上 5、2025 上 11 直接考):
- 熔断:失败率超阈值→快速失败,不调用下游(断路器三态:关闭/打开/半开);
- 降级:返回兜底数据或简化功能;
- 限流:令牌桶/漏桶/滑动窗口,保护自身;
- 隔离:线程池隔离/信号量隔离,防止一个依赖耗尽全部资源。
5.3 DDD 与架构模式
- 限界上下文:模型边界,边界内统一语言;上下文映射:防腐层(ACL)、共享内核、开放主机服务。
- CQRS:命令(写)与查询(读)分离,可各自独立扩展(2026 上 2)。
- 六边形架构(端口-适配器):核心业务在中心,外部通过端口+适配器接入,隔离技术细节(2026 上论文四)。
- Saga:长事务补偿;TCC:Try-Confirm-Cancel;本地消息表/事务消息:最终一致(2024 下论文四)。
- 真题:2022 下 31、2025 下案例二。
六、云原生
| 概念 | 要点 |
|---|---|
| 容器 | 进程级隔离、镜像交付、秒级启动;比 VM 轻 |
| Kubernetes | 编排:调度、自愈、滚动升级、服务发现、HPA 弹性 |
| 不可变基础设施 | 变更=替换镜像而非修改运行中的机器(2025 下 36) |
| Service Mesh | 数据面(Sidecar)+ 控制面,把治理能力下沉 |
| Serverless / FaaS | 事件驱动、按需付费、自动伸缩;缺点:冷启动、状态管理难、厂商锁定(2025 下论文 3) |
| 12-Factor | 配置外置、无状态进程、日志作为事件流、dev/prod 一致 |
| 云服务三模式 | IaaS / PaaS / SaaS(2022 下 1) |
| 可用区(AZ) | 同地域内电力与网络隔离,跨 AZ 部署提升可用性(2026 下 26) |
| 虚拟化 | 全虚拟化/半虚拟化/硬件辅助;容器共享内核(2024 上 57) |
七、缓存(案例最爱的"三问")
7.1 Redis 三大经典问题
| 问题 | 现象 | 根因 | 解法 |
|---|---|---|---|
| 缓存穿透 | 查不存在的 key,请求全打到 DB | 恶意攻击/无效查询 | 缓存空值(短 TTL)、布隆过滤器、参数校验 |
| 缓存击穿 | 单个热点 key 失效瞬间,大量请求打到 DB | 热点 key 过期 | 互斥锁重建、逻辑过期、热点永不过期 |
| 缓存雪崩 | 大量 key 同时失效或缓存集群宕机,DB 被打垮 | TTL 相同/重启 | TTL 加随机值、多级缓存、熔断限流、集群高可用、预热 |
真题:2019 下案例四(母题)、2025 下试题 3、2026 下案例二、2022 下试题四。
7.2 双写一致性(案例必考)
- 先更新 DB 再删除缓存(Cache-Aside / 旁路缓存) 是主流;删除而非更新,避免并发写覆盖。
- 仍存在"读旧值回填"窗口 → 延迟双删(更新后延迟再删一次)、订阅 binlog(Canal)异步删除。
- 强一致场景用 分布式锁 或 读写穿透 + 版本号。
- 母题(2019 下案例四):"先写缓存再写库/先写库再写缓存"都不能保证一致,因为两个操作非原子,中间可能失败或被并发读覆盖。
- 正确读流程:读缓存 → 未命中 → 查数据库 → 回写缓存 → 返回。
- 正确写流程:写数据库 → 删除缓存 → 返回。
7.3 Redis 其他考点
| 考点 | 要点 |
|---|---|
| 数据类型 | String、Hash、List、Set、ZSet(有序集合,排行榜/延时队列);扩展:Bitmap、HyperLogLog、GEO、Stream |
| 持久化 | RDB(快照,恢复快、可能丢数据)、AOF(追加日志,安全、恢复慢);混合持久化(4.0+) |
| 淘汰策略 | noeviction、allkeys-lru、volatile-lru、allkeys-random、volatile-ttl、lfu 系列 |
| 分布式锁 | SETNX + 过期时间 + value 校验(防误删) + Lua 原子释放;Redisson 看门狗续期(2024 上选做 1) |
| 高可用 | 主从复制、哨兵(Sentinel) 自动故障转移、Cluster 分片(2026 下案例二) |
| Memcached vs Redis | Memcached 仅 KV、无持久化、多线程;Redis 数据类型丰富、可持久化、单线程模型(6.0 网络 IO 多线程) |
真题:2020 下案例四(数据类型+持久化+淘汰)、2018 下案例四(MemCache vs Redis)、2023 下选做 2(数据丢失+读写分离)、2026 上案例三(超卖)。
7.4 超卖与并发控制
- 悲观锁(
SELECT ... FOR UPDATE)、乐观锁(版本号/CAS)、Redis 原子操作(DECR)、Lua 脚本、队列串行化。 - 真题:2026 上案例三。
八、大数据流处理与消息队列
| 架构 | 组成 | 特点 |
|---|---|---|
| Lambda | 批处理层(全量、准确)+ 速度层(实时、近似)+ 服务层(合并查询) | 两套代码、两套逻辑,运维复杂 |
| Kappa | 只有流处理层,历史数据靠消息队列重放 | 一套代码,简化架构,依赖高可靠 MQ |
真题:2026 上 65—66、2025 下 58、2023 下必做(奥运转播,Lambda/Kappa 对比)、2024 上论文三。
答题要点:Lambda 适合"批流并存的存量+增量";Kappa 适合"实时为主、可重放";选型看数据规模、实时性要求、团队能力。
Kafka 要点:Topic/Partition、副本与 ISR、生产者 acks、消费者组、顺序性(同分区内有序)、削峰填谷。
九、负载均衡、CDN、边缘计算
| 主题 | 要点 |
|---|---|
| 负载均衡层次 | DNS 轮询 → 四层(LVS,改 IP/端口)→ 七层(Nginx,按 URL/Header) |
| 算法 | 轮询、加权轮询、最少连接、加权最少连接、源地址哈希、一致性哈希(减少节点变动时的迁移量) |
| CDN | 边缘节点缓存静态资源,回源;配合反向代理降低源站压力(2023 下 39) |
| 边缘计算 | 靠近数据源处理,低时延、省带宽、隐私保护;与云协同(云边协同) |
| 雾计算 | 介于云与端之间的分层计算(2026 上 25) |
| SDN | 控制面与数据面分离,集中式控制(2021 下 15) |
十、跨年真题定位索引
| 年份 | 题号/案例/论文 | 考点 |
|---|---|---|
| 2026 下 | 25 / 26 | WSDL、云计算可用区 |
| 2026 下 | 案例二 / 案例三 | Redis 主从哨兵、C/S、支付回调安全 |
| 2026 下 | 论文三 / 论文四 | RAG 架构、智能运维 |
| 2026 上 | 2 / 5 / 25 / 44 / 65—66 | CQRS、微服务雪崩防护、雾计算边缘计算、倒排索引、Lambda |
| 2026 上 | 案例三 / 论文二 / 论文四 | Redis 超卖、高并发架构、六边形架构 |
| 2025 下 | 36 / 38 / 58 / 66 / 72 | 不可变基础设施、EDI、Lambda、微服务、联邦服务 |
| 2025 下 | 试题 2 / 试题 3 / 论文 3 / 论文 4 | 限界上下文、缓存击穿、Serverless、秒杀 |
| 2025 上 | 11 / 12 / 19 / 28 | 断路器、边缘计算、ERP、REST API |
| 2025 上 | 选做 1 / 论文 1 / 论文 2 | Redis 主从、负载均衡、事件驱动 |
| 2024 下 | 23 / 32 / 50 / 54 | SOAP、WSDL、EAI、企业集成层次 |
| 2024 下 | 选做 2 / 选做 4 / 论文 2 / 论文 4 | Cache-Aside、Elasticsearch、SOA、分布式事务 |
| 2024 上 | 27 / 29 / 56 / 57 / 58 | 物联网三层、服务发现、REST 约束、虚拟化、EAI |
| 2024 上 | 选做 1 / 论文 2 | Redis 分布式锁、DevOps |
| 2023 下 | 必做 / 选做 1 / 选做 2 / 论文 1 | Lambda/Kappa、JWT、Redis 数据丢失与读写分离、边缘计算 |
| 2022 下 | 1 / 27 / 31 / 32 | 云服务模式、中间件、DDD、微服务 vs SOA |
| 2022 下 | 试题四 / 试题五 / 论文四 | 缓存三问、边缘计算门禁、湖仓一体 |
| 2021 下 | 14 / 15 / 36 | Internet 交换、SDN、构件交互 |
| 2021 下 | 试题三 / 试题四 / 论文四 | 反规范化+Redis、家庭网关 vs 云平台、微服务 |
| 2020 下 | 36—38 | 中间件功能 |
| 2020 下 | 试题三 / 试题四 / 论文一 / 论文二 / 论文四 | FACE 架构、Redis 三问、数据分片、云原生、企业集成 |
| 2019 下 | 20—21 / 49—50 | 应用集成、ESB |
| 2019 下 | 试题四 | 双写不一致 + 缓存三大问题(母题) |
| 2018 下 | 试题四 / 试题五 / 论文三 | MemCache vs Redis、SOA/ESB、SOA 论文 |
十一、典型陷阱
- 穿透/击穿/雪崩:穿透=key 不存在;击穿=一个热点 key 失效;雪崩=大量 key 失效。三者解法不可互换。
- WSDL 三属性顺序与内容:"做什么/如何访问/位于何处",选项常把"谁提供"混进去。
- SOAP 四部分:Envelope、Encoding Rules、RPC Representation、Binding——没有"路由"(路由是 ESB 的事)。
- UDDI 是注册中心,不是描述语言(描述是 WSDL)。
- REST 是架构风格,不是协议;"REST 必须用 JSON"是错的(可用 XML)。
- 微服务"独立数据库":选项若说"微服务共享一个数据库"必错。
- Kafka 只能保证分区内有序,不能保证全局有序。
- Lambda 的速度层是"近似"结果,服务层负责合并——选项常把两层职责对调。
- 缓存更新用"删除"而非"更新",因为并发更新会覆盖他人写入。
- 边缘计算不等于 CDN:CDN 只缓存静态内容,边缘计算可运行计算逻辑。
- 一致性哈希解决的是"节点增减时的数据迁移量",不是"数据一致性"。
- Serverless 的短板是冷启动与状态,不是"不能自动伸缩"(它恰恰弹性最好)。
十二、答题模板
模板 A:案例"缓存问题三连"(最高频,10 分钟拿满 15 分)
第 1 问(现象→定性):
"查询不存在的 key 打垮 DB" → 缓存穿透
"热点 key 过期瞬间并发打 DB" → 缓存击穿
"大量 key 同时失效/实例宕机" → 缓存雪崩
第 2 问(解法,每种给 2 条):
穿透:缓存空对象(短 TTL)+ 布隆过滤器前置拦截
击穿:互斥锁(只放一个请求重建)+ 逻辑过期/热点不过期
雪崩:TTL 加随机抖动 + 多级缓存 + 熔断限流 + 集群高可用
第 3 问(工程细节):说明"空值 TTL 不能太长(防脏数据)、要能区分空值与故障"、
"锁要设超时并校验持有者"、"缓存与 DB 更新用删除+延迟双删"。
模板 B:案例"双写一致性"(必给读写步骤)
读:读缓存 → 命中返回 → 未命中则查数据库 → 回写缓存(设 TTL)→ 返回
写:写数据库 → 删除缓存 → 返回
补充:延迟双删(如 500ms 后再删一次)应对并发读回填;
更高要求用 binlog 订阅异步删除,或加分布式锁串行化。
结论句:优先保证"最终一致",强一致需引入锁或事务消息,代价是性能。
模板 C:论文"论微服务/云原生/高并发"
一、背景(300 字):业务量(日订单 X 万、峰值 QPS X)、原单体架构痛点(发布耦合、扩容粗粒度)
二、架构设计(600 字):服务拆分(按业务能力/DDD 限界上下文)、独立库、API 网关、
注册发现、配置中心、链路追踪
三、关键技术(700 字):缓存(多级+三防)、消息队列削峰、熔断降级限流、分布式事务(Saga/TCC)、
容器化与弹性伸缩
四、效果(300 字):峰值 QPS 从 X 到 Y、P99 从 Xms 到 Yms、发布频率从月到日
五、不足(150 字):分布式事务复杂度、运维成本、数据一致性治理
十三、自测清单
- [ ] 说出 UDDI/WSDL/SOAP 各自作用及 SOAP 四部分
- [ ] 说出 REST 六约束,并能与 SOAP 对比 3 点
- [ ] 说出 ESB 的 5 项功能
- [ ] 说出 EAI 四个集成层次及各自优缺点
- [ ] 说出微服务与 SOA 的 5 点差异
- [ ] 说出熔断/降级/限流/隔离分别解决什么问题,断路器三态
- [ ] 准确区分缓存穿透/击穿/雪崩并各给 2 种解法
- [ ] 写出正确的缓存读写流程,并解释为什么用删除不用更新
- [ ] 说出 RDB 与 AOF 的区别、Redis 哨兵与 Cluster 的区别
- [ ] 说出 Lambda 与 Kappa 的三层/一层结构及选型依据
- [ ] 说出负载均衡四层与七层的差别、一致性哈希的用途
十四、来源与可信度
- 技术事实(UDDI/WSDL/SOAP、REST、Redis 机制、Lambda/Kappa)以教材与业界标准文档为准,可信度高。
- 案例分析题为考生回忆版,题面细节可能与原卷有出入,答题框架不受影响;引用时已在套卷标注。
- 2018 下案例五、论文三的要点来自公开解析,属〔推〕级别。