SpringNotes

第 35 章:大师之路

zjc 于 2026-02-04 发布

这是《Spring Boot 与 Spring Cloud 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 掌握 Spring Boot 与 Spring Cloud,不只是会写注解和搭服务,而是能设计稳定系统、读懂框架边界、治理研发流程,并在故障中沉淀体系化经验。

35.1 能力模型

层级 能力
入门 完成 Web、配置、数据库、测试
熟练 理解 IoC、AOP、事务、自动装配
进阶 设计缓存、消息、异步和分布式一致性
高阶 治理微服务、安全、观测、发布和容量
专家 读源码、做架构取舍、建设团队规范

每个层级都要有可验证产出,而不是只看工作年限。

35.2 学习路线

第一阶段:工程能力

目标:

  1. 独立创建 Spring Boot 服务;
  2. 规范 REST API;
  3. 使用数据库事务;
  4. 写单元和集成测试;
  5. 接入日志和指标。

产出:一个可部署的小型业务系统。

第二阶段:框架原理

目标:

  1. 理解 Bean 生命周期;
  2. 解释 AOP 和事务代理;
  3. 掌握配置加载优先级;
  4. 阅读自动装配源码;
  5. 编写 Starter。

产出:一个带完整测试的 Starter。

第三阶段:分布式能力

目标:

  1. 服务拆分;
  2. 注册发现和配置治理;
  3. 网关与灰度;
  4. 熔断限流降级;
  5. Outbox、Saga、幂等;
  6. 事件驱动架构。

产出:一个订单交易微服务项目。

第四阶段:生产能力

目标:

  1. 建立可观测性;
  2. 做容量和性能压测;
  3. 无损发布;
  4. 安全治理;
  5. 故障预案和演练;
  6. 多环境和多机房。

产出:一套上线运行手册。

35.3 推荐实践

  1. 构造器注入;
  2. 配置对象化;
  3. Controller 薄;
  4. 外部调用必有超时;
  5. 写操作幂等;
  6. 消息消费有死信;
  7. 日志指标 trace 三件套;
  8. 数据库脚本版本化;
  9. 发布可回滚;
  10. 测试分层稳定。

这些规则比引入任何新框架更能降低系统复杂度。

35.4 架构判断

常见取舍:

问题 判断
单体还是微服务 业务规模、团队和边界是否需要
同步还是异步 是否需要实时结果和强反馈
强一致还是最终一致 业务风险和补偿成本
注册中心还是 K8s Service 部署形态和治理能力
Spring Cloud 还是 Mesh 能力重叠与团队掌控度
JPA 还是 MyBatis 模型复杂度和 SQL 控制度

架构没有标准答案,只有约束下的合理选择。

35.5 深入源码

建议主线:

SpringApplication.run
refresh
Bean lifecycle
BeanPostProcessor
AOP proxy
Transaction interceptor
DispatcherServlet
AutoConfiguration
Actuator metrics

源码学习输出:

  1. 时序图;
  2. 关键接口;
  3. 扩展点;
  4. 版本差异;
  5. 最小实验;
  6. 应用到项目的改进。

不要为了背源码而读源码。

35.6 关注演进

方向 关注点
Spring Boot 3.x Jakarta、Native、可观测性
Spring Framework 6 RestClient、HTTP Interface
虚拟线程 阻塞 IO 模型变化
GraalVM Native Image 启动速度、反射配置
Project CRaC 快照启动
Service Mesh 平台流量治理
OpenTelemetry 统一观测协议

学习新特性时问:

  1. 解决什么问题;
  2. 引入什么限制;
  3. 与当前版本兼容性;
  4. 迁移成本;
  5. 有没有可验证收益。

35.7 团队治理

工程规范:

1. 统一依赖 BOM
2. 统一异常和日志
3. 统一测试模板
4. 统一部署模板
5. 统一安全策略
6. 统一 API 契约
7. 统一中间件接入
8. 统一发布回滚

平台能力:

  1. 服务目录;
  2. owner 信息;
  3. 拓扑图;
  4. 指标看板;
  5. 日志查询;
  6. trace 查询;
  7. 变更审计;
  8. 发布编排。

35.8 故障复盘库

每类故障沉淀:

现象
影响
时间线
证据
根因
修复
预防
演练方案

常见主题:

  1. 事务失效;
  2. 连接池耗尽;
  3. 缓存击穿;
  4. 消息重复;
  5. 注册中心抖动;
  6. 无损发布失败;
  7. CPU throttling;
  8. OOMKilled;
  9. 依赖版本冲突;
  10. 配置漂移。

35.9 12 周提升计划

阶段 内容
1-2 周 IoC、生命周期、注入、配置
3 周 AOP、事务、数据访问
4-5 周 Web、测试、Starter
6-7 周 微服务、网关、注册配置
8 周 熔断限流、分布式事务、事件
9-10 周 观测、性能、故障排查
11 周 容器、发布、优雅上下线
12 周 项目复盘和内部分享

每周至少完成一个可运行实验。

35.10 最终建议

  1. 先写清楚业务边界,再引入技术栈;
  2. 先有可观测性,再谈优化;
  3. 先做幂等和补偿,再谈异步;
  4. 先压测,再扩容;
  5. 先回滚方案,再发布;
  6. 先版本兼容,再数据库变更;
  7. 先统一规范,再推广平台;
  8. 先保留证据,再重启。

Spring 生态很大,但主线一直没变:控制反转管理对象,AOP 处理横切,Boot 简化装配,Cloud 治理分布式,生产体系保证系统真的稳定运行。

本章小结

大师之路是工程能力、框架原理、分布式设计、生产治理和团队规范的持续叠加。通过可运行项目、源码实验、故障复盘和平台化治理,把知识变成稳定系统能力。技术选型始终回到业务目标、团队能力和长期维护成本。

思考题

  1. 你当前在能力模型中的哪一层?
  2. 哪个生产故障可以整理成团队案例?
  3. 你的团队最缺少哪条工程规范?
  4. Spring Cloud 和 Service Mesh 如何取舍?
  5. 下一个 12 周学习计划是什么?