这套目录把 Java 架构师需要的能力拆成 18 个阶段。你会先建立可运行、可测试的 Java 工程,再学习 JVM、并发、 数据库和分布式系统,最后完成架构决策、生产治理、AI 应用与技术领导力训练。
目录不会把“会用中间件”当作终点。每个阶段都要求你说明适用条件、失败模式、替代方案和验证方法,因为架构师的 核心产出是可复核的决策,而不是技术名词清单。
Table of contents
Open Table of contents
- 如何使用这套目录
- 写作与实现基线
- 建议的落盘结构
- 00. 建立架构师学习方法
- 01. Java 语言与工程基础
- 02. JVM 原理与性能诊断
- 03. 并发与异步编程
- 04. 网络、I/O 与 Java 服务器
- 05. Spring 生态与源码
- 06. MyBatis、MySQL 与数据架构
- 07. Redis 与缓存工程
- 08. 分布式系统、协调与消息
- 09. Elasticsearch 与搜索架构
- 10. Spring Boot 与微服务
- 11. 架构设计方法
- 12. 云原生、可观测性与 SRE
- 13. AI 原生 Java 应用
- 14. 综合系统项目
- 15. 工程治理与架构运营
- 16. 技术领导力与软实力
- 17. 毕业设计与能力验收
- 知识覆盖检查
- 后续文章模板
如何使用这套目录
文章编号就是建议学习与发布顺序。零基础读者从 00 开始;已有 Java 项目经验的读者可以先完成阶段验收,再跳到
对应模块。每篇文章只承担一种任务:教程负责带你完成一次实践,原理文解释为什么,操作指南解决具体问题,参考文
集中整理参数和命令。
建议按以下四段推进:
00—04:建立 Java、JVM、并发和网络基础。05—10:掌握企业框架、数据系统、消息系统、搜索和微服务。11—15:训练架构设计、云原生、AI、项目落地和工程治理。16—17:形成技术领导力,并用毕业设计证明完整能力。
写作与实现基线
后续文章统一使用可复现的工程基线,避免只展示无法运行的片段。
- 核心示例以 Java 21 为最低主线,并讲清 Java 17、21 和 25 的迁移差异。Java 25 是当前 LTS;版本专题会区分 语言特性、运行时支持和发行版许可。
- Spring 示例同时覆盖 Spring Framework 6.2/7.x 与 Spring Boot 3.5/4.x 的关键差异,业务代码不依赖已废弃 API。
- 默认使用 Maven Wrapper、JUnit 5、Testcontainers、Docker Compose 和可复制的环境变量示例。
- 专业术语第一次出现时给出中文定义、英文全称和一个具体例子。
- 涉及性能时提供基线、负载模型、指标和复测命令;涉及分布式状态时提供故障注入与恢复验证。
- 涉及生产写操作、认证信息和个人数据时,默认使用最小权限、脱敏数据和可回滚方案。
建议的落盘结构
每个阶段使用独立目录,文章文件使用 阶段-序号-中文短名.md,便于按文件名稳定排序。Java、JVM、Spring、
Redis、SRE 等行业通用名称保留原文,其余目录名和文件名优先使用中文。
java_archiect/
├── 00.学习路线/
├── 01.Java基础/
├── 02.JVM与性能/
├── 03.并发编程/
├── 04.网络与服务器/
├── 05.Spring生态/
├── 06.MySQL与持久化/
├── 07.Redis与缓存/
├── 08.分布式与消息/
├── 09.Elasticsearch与搜索/
├── 10.微服务/
├── 11.架构设计/
├── 12.云原生与SRE/
├── 13.Java与AI/
├── 14.综合项目/
├── 15.工程治理/
├── 16.技术领导力/
└── 17.毕业设计/
00. 建立架构师学习方法
这一阶段先定义能力边界和证据。完成后,你能判断自己缺什么,并用作品而不是背诵证明学习结果。
- 00-01 从开发者到架构师:职责、边界与常见误区 — 区分编码、设计、决策、治理和组织影响力。
- 00-02 架构能力模型与自测表 — 从技术深度、系统思维、交付能力和领导力四个维度建立基线。
- 00-03 搭建可复现的 Java 实验室 — 配置 JDK、Maven Wrapper、IDE、Docker 和 Git。
- 00-04 如何读源码:调用链、断点、测试与最小复现 — 用问题驱动源码阅读,避免从第一行顺序读起。
- 00-05 如何写技术实验报告 — 记录假设、环境、变量、证据、结论和未决问题。
- 00-06 用 ADR 保存架构决策 — 编写 Architecture Decision Record,记录背景、选项和后果。
01. Java 语言与工程基础
这一阶段补齐后续源码和框架学习依赖的语言基础。每篇文章都配一个小型命令行项目。
- 01-01 第一个可测试的 Java 项目 — 理解源码目录、编译、运行、依赖和测试生命周期。
- 01-02 类型系统、值传递与对象引用 — 解释基本类型、包装类型、自动装箱和参数传递。
- 01-03 面向对象不是堆类:封装、组合与多态 — 用订单计价规则比较继承与组合。
- 01-04 异常设计与资源关闭 — 区分可恢复错误、编程错误、受检异常和
try-with-resources。 - 01-05 集合框架的选择与复杂度 — 对比 List、Set、Map、Queue 的语义和时间复杂度。
- 01-06 泛型、边界与类型擦除 — 从类型安全 API 讲到 PECS 和运行时限制。
- 01-07 Lambda、Stream 与副作用边界 — 写出可读、可测且不会误用并行流的数据管道。
- 01-08 文件、网络与 NIO 基础 — 解释缓冲区、通道、字符编码和阻塞边界。
- 01-09 注解、反射与动态代理 — 实现一个最小依赖注入和方法拦截示例。
- 01-10 时间、金额、精度与序列化 — 正确使用
Instant、时区、BigDecimal和 JSON。 - 01-11 Maven、Gradle 与依赖冲突 — 理解坐标、传递依赖、Scope、BOM 和依赖锁定。
- 01-12 JUnit 5、Mockito 与测试替身 — 区分 Stub、Mock、Fake,并避免脆弱的交互测试。
- 01-13 Record、密封类与模式匹配 — 用现代语法表达不可变数据和封闭业务状态。
- 01-14 从 Java 17 迁移到 21/25 — 评估兼容性、移除项、构建链、运行时和回滚方案。
02. JVM 原理与性能诊断
这一阶段从“代码如何运行”走到“生产问题如何定位”。调优文章先测量,再修改参数。
- 02-01 JVM 全景:类、内存、线程与执行引擎 — 建立从
.java到机器指令的整体模型。 - 02-02 类加载的双亲委派、隔离与打破方式 — 分析启动、平台、应用和自定义类加载器。
- 02-03 运行时数据区与 Java 内存模型不要混淆 — 区分堆、栈、元空间和 JMM。
- 02-04 对象创建、布局、逃逸分析与分配路径 — 观察 TLAB、标记字和对象晋升。
- 02-05 Class 文件、常量池与字节码指令 — 手工解析一个类并使用
javap验证。 - 02-06 解释执行、JIT、分层编译与反优化 — 说明热点代码如何变成机器码。
- 02-07 GC 基础与三色标记 — 解释可达性、Stop-The-World、写屏障和并发标记。
- 02-08 CMS、G1、ZGC 与现代收集器选型 — 按延迟、吞吐、堆大小和 JDK 版本选择。
- 02-09 JVM 参数、日志与容器资源识别 — 建立可审计的启动参数模板。
- 02-10 jcmd、JFR、VisualVM 与 async-profiler — 用同一故障学习线程、CPU、分配和锁分析。
- 02-11 内存泄漏、OOM 与 Heap Dump 实战 — 从现象、证据到修复和回归测试。
- 02-12 CPU 飙高、死锁和长暂停排查 — 建立线上应急命令清单与证据链。
- 02-13 常量池、字符串与类元数据的内存代价 — 用实验验证驻留和类卸载。
- 02-14 GC 调优方法:目标、基线、变更与复测 — 以吞吐、P99 和暂停预算驱动调优。
- 02-15 JDK 升级与 JVM 性能回归 — 设计可重复基准,识别参数语义和默认值变化。
03. 并发与异步编程
这一阶段从共享内存规则开始,再进入锁、容器、线程池和现代并发模型。
- 03-01 线程生命周期、等待通知与中断协议 — 正确使用
wait/notify、join和 interruption。 - 03-02 JMM、Happens-Before 与三类并发性质 — 解释原子性、可见性和有序性。
- 03-03
synchronized的锁升级与适用边界 — 从字节码和对象头理解互斥。 - 03-04 CAS、ABA 与 Atomic 原子类 — 实现无锁计数并说明失败重试代价。
- 03-05 AQS 与 ReentrantLock 源码主线 — 追踪队列、抢锁、阻塞、唤醒和公平性。
- 03-06 Semaphore、CountDownLatch 与 CyclicBarrier — 按限流、汇合和分阶段任务选工具。
- 03-07 并发 Map、List 和 Set 的实现权衡 — 分析分段、复制和弱一致迭代。
- 03-08 BlockingQueue 与生产者消费者 — 比较队列容量、公平性和背压策略。
- 03-09 ThreadPoolExecutor 参数、拒绝与动态调节 — 用任务模型计算线程和队列配置。
- 03-10 Future 与 CompletableFuture 异步编排 — 处理超时、异常、取消和上下文传播。
- 03-11 ForkJoinPool、工作窃取与并行流 — 判断 CPU 密集任务何时值得拆分。
- 03-12 ThreadLocal 泄漏与请求上下文治理 — 复现线程池中的残留数据并修复。
- 03-13 CPU 缓存、伪共享与 Disruptor — 从缓存行解释低延迟内存队列。
- 03-14 虚拟线程、固定与观测 — 迁移阻塞式服务,并识别 pinning 和连接池瓶颈。
- 03-15 并发设计模式与确定性测试 — 使用不可变对象、Actor 思想和并发测试工具。
04. 网络、I/O 与 Java 服务器
这一阶段把一次 HTTP 请求连接到 TCP、Linux、Netty 和 Tomcat,建立端到端性能模型。
- 04-01 一次网页请求经历了什么 — 串联 DNS、ARP、TCP、TLS、HTTP、代理和应用线程。
- 04-02 TCP、UDP、拥塞控制与连接故障 — 解释握手、数据报、重传、队头阻塞和常见状态。
- 04-03 BIO、NIO、直接内存与零拷贝 — 用文件传输实验比较数据路径。
- 04-04 select、poll 与 epoll — 从 Linux 事件通知理解高并发 I/O。
- 04-05 Netty 快速入门:Channel、EventLoop 与 Pipeline — 构建一个可测试的协议服务器。
- 04-06 编解码、粘包拆包与背压 — 设计长度字段协议和流量保护。
- 04-07 Netty 线程模型与任务调度 — 避免阻塞 EventLoop,并测量事件积压。
- 04-08 Netty 内存池、引用计数与泄漏排查 — 正确管理 ByteBuf 生命周期。
- 04-09 从 Netty 源码理解启动与读写链路 — 追踪 Bootstrap、Selector 和 Pipeline 调用。
- 04-10 手写轻量 RPC 框架 — 实现协议、服务发现、序列化、超时和重试。
- 04-11 Tomcat 容器、连接器与请求链路 — 理解 Engine、Host、Context、Wrapper 和 Connector。
- 04-12 Tomcat 线程模型与性能调优 — 联合调整连接、线程、队列和应用下游容量。
- 04-13 Tomcat 类加载、热部署与内存泄漏 — 解释 WebApp 隔离和重新加载风险。
- 04-14 HTTP/2、HTTP/3、WebSocket 与 gRPC 选型 — 按交互模型和基础设施能力取舍。
05. Spring 生态与源码
这一阶段先建立 Spring 扩展模型,再阅读关键源码。目标是知道框架何时帮了你、何时隐藏了问题。
- 05-01 IoC、DI 与 Spring 核心组件全景 — 从对象创建问题理解容器价值。
- 05-02 手写最小 IoC 容器 — 实现扫描、BeanDefinition、实例化和注入。
- 05-03 ApplicationContext 启动主线 — 用模板方法追踪刷新流程。
- 05-04 Bean 生命周期与后置处理器 — 定位实例化、属性填充、初始化和销毁扩展点。
- 05-05 构造器推断与依赖解析 — 解释候选选择、
@Primary、Qualifier 和循环依赖。 - 05-06 三级缓存能解决什么循环依赖 — 区分代理、构造器循环和设计问题。
- 05-07 配置类、组件扫描与条件装配 — 追踪
@Configuration和导入机制。 - 05-08 Spring 扩展点实战 — 正确选择 Registrar、Factory、PostProcessor 和 Listener。
- 05-09 AOP 代理创建与调用链 — 比较 JDK 代理、CGLIB、切点和拦截器。
- 05-10 声明式事务的传播、隔离与失效场景 — 从代理链解释自调用和异常回滚。
- 05-11 Spring MVC 启动、映射与参数绑定 — 追踪 DispatcherServlet 初始化。
- 05-12 Spring MVC 请求、异常与响应流程 — 实现统一错误协议并验证过滤器顺序。
- 05-13 Spring 与 MyBatis 的整合机制 — 理解 Mapper 代理、Session 和事务同步。
- 05-14 手写 Spring Boot 核心流程 — 实现启动入口、自动配置和嵌入式服务器。
- 05-15 Spring Boot 启动与自动配置源码 — 追踪条件匹配、Import 和配置绑定。
- 05-16 Spring Boot 生产特性 — 配置 Actuator、健康检查、指标和优雅停机。
- 05-17 Spring 6/7 与 Boot 3/4 迁移 — 处理 Jakarta、基线 JDK、废弃 API 和测试变化。
- 05-18 Reactor 与 Spring WebFlux — 理解响应式流、背压、线程切换和阻塞边界。
- 05-19 AOT、GraalVM Native Image 与 CRaC — 比较启动、内存、构建时间和兼容性。
- 05-20 Spring、Jakarta EE、Quarkus 与 Micronaut — 按生态、运行模型、团队能力和部署目标选择。
06. MyBatis、MySQL 与数据架构
这一阶段从 SQL 执行链进入存储引擎、索引、事务、高可用和数据生命周期。
- 06-01 MyBatis 配置解析与核心对象 — 理解 Configuration、MappedStatement 和插件链。
- 06-02 MyBatis SQL 执行、缓存与结果映射 — 追踪 Executor、StatementHandler 和 Mapper 代理。
- 06-03 MyBatis 插件、批处理与常见性能陷阱 — 识别 N+1、动态 SQL 和缓存误用。
- 06-04 MySQL 架构与一条 SQL 的生命周期 — 串联连接、解析、优化、执行和存储引擎。
- 06-05 InnoDB 页、行与 B+Tree 索引 — 解释聚簇索引、二级索引和回表。
- 06-06 Explain 与执行计划阅读 — 从访问类型、行数估算和 Extra 定位问题。
- 06-07 联合索引、覆盖索引与索引下推 — 用真实查询验证最左匹配和回表代价。
- 06-08 排序、分页、Join 与子查询优化 — 处理深分页、临时表和错误驱动表。
- 06-09 事务 ACID 与隔离级别 — 复现脏读、不可重复读、幻读和写偏差。
- 06-10 InnoDB 锁、死锁与锁等待分析 — 理解记录锁、间隙锁和 Next-Key Lock。
- 06-11 MVCC、Read View 与一致性读 — 解释版本链与不同隔离级别的可见性。
- 06-12 Redo、Undo、Binlog 与崩溃恢复 — 串联 WAL、两阶段提交和数据恢复。
- 06-13 Schema、数据类型与约束设计 — 让一致性约束进入数据库,而不是只靠代码。
- 06-14 MySQL 全局性能:Buffer Pool、连接与 I/O — 建立实例级调优基线。
- 06-15 主从复制、延迟与读写分离 — 处理读己之写和故障切换。
- 06-16 高可用集群、备份与恢复演练 — 以 RPO、RTO 验证方案,而不是只完成搭建。
- 06-17 分库分表、历史归档与在线迁移 — 按容量模型设计路由、扩容和回滚。
- 06-18 JDBC、连接池、JPA/Hibernate 与 Spring Data — 比较 SQL 控制力、对象映射和开发效率。
- 06-19 数据存储选型 — 比较 MySQL、PostgreSQL、MongoDB、ClickHouse 和对象存储的适用边界。
07. Redis 与缓存工程
这一阶段不仅讲命令,还覆盖一致性、热点、锁、持久化和生产安全。
- 07-01 Redis 数据类型与典型建模 — 按访问模式选择 String、Hash、List、Set 和 ZSet。
- 07-02 Redis 线程模型、I/O 多路复用与命令原子性 — 解释快的原因和阻塞风险。
- 07-03 SDS、Dict、SkipList 与紧凑编码 — 从底层结构理解内存和性能。
- 07-04 RDB、AOF 与数据安全 — 按丢失窗口、恢复速度和写放大选择策略。
- 07-05 主从、Sentinel 与 Cluster — 理解复制、故障转移、槽位和脑裂风险。
- 07-06 分布式锁的正确边界 — 处理唯一标识、续期、Fence Token 和主从切换。
- 07-07 Cache-Aside、穿透、击穿与雪崩 — 组合空值、布隆过滤、互斥和随机过期。
- 07-08 缓存与数据库一致性 — 比较延迟双删、订阅日志、Canal 和事件驱动方案。
- 07-09 热点 Key 探测、隔离与本地缓存 — 设计通用热点发现链路并评估 HotKey 实现。
- 07-10 Redis Stack:搜索、JSON、时序与概率结构 — 判断扩展模块是否适合业务。
- 07-11 Redis 性能诊断与容量规划 — 使用 Slowlog、延迟监控、BigKey 和内存采样。
- 07-12 Redis 生产变更与数据迁移 — 演练扩容、升级、备份、回滚和权限收敛。
08. 分布式系统、协调与消息
这一阶段用一致性与故障模型串联分片、协调、事务和三类消息系统。
- 08-01 CAP、PACELC 与一致性模型 — 区分线性一致、顺序一致、最终一致和业务一致。
- 08-02 超时、重试、幂等、去重与退避 — 设计不会放大故障的远程调用策略。
- 08-03 分布式 ID:趋势递增、时钟与号段 — 比较 UUID、Snowflake、数据库号段和 CosId。
- 08-04 ZooKeeper 数据模型、会话与 Watch — 理解临时节点、顺序节点和一次性通知。
- 08-05 ZooKeeper 配置、选主、锁与注册发现 — 识别可以使用和不应使用的场景。
- 08-06 Leader 选举与 ZAB 协议 — 从日志复制解释崩溃恢复和顺序保证。
- 08-07 Paxos、Raft 与复制状态机 — 用多数派、任期、日志和成员变更建立共识模型。
- 08-08 ShardingSphere-JDBC 分片实战 — 设计分片键、路由、广播表和绑定表。
- 08-09 ShardingSphere-Proxy、内核与扩容 — 比较客户端和代理模式,追踪 SQL 改写链。
- 08-10 分布式事务模式 — 对比 2PC、TCC、Saga、事务消息和 Outbox。
- 08-11 Seata 工作原理与源码主线 — 理解 TC、TM、RM、AT 模式和回滚日志。
- 08-12 RabbitMQ 入门:交换机、队列与路由 — 构建第一个可确认的消息链路。
- 08-13 RabbitMQ 可靠性与高级能力 — 处理 Confirm、死信、延迟、顺序和幂等消费。
- 08-14 RabbitMQ 集群、Quorum Queue 与运维 — 演练节点故障、积压和容量扩展。
- 08-15 Kafka 客户端消息流转 — 追踪 Producer、Broker、Consumer 和 Consumer Group。
- 08-16 Kafka 集群、分区、副本与再均衡 — 解释控制器、Leader、ISR 和 Rebalance。
- 08-17 Kafka 日志索引、事务与流处理 — 理解存储、Exactly-Once 语义、Kafka Streams 和 RocksDB 状态库。
- 08-18 RocketMQ 概念、客户端与消息类型 — 实现普通、顺序、延迟和事务消息。
- 08-19 RocketMQ 存储源码与高可用集群 — 追踪 CommitLog、ConsumeQueue 和复制。
- 08-20 消息系统选型与常见事故 — 按吞吐、延迟、路由、运维和生态做 PoC。
- 08-21 Temporal、Camunda 与持久工作流 — 为长事务、人工任务、补偿和超时选择执行模型。
09. Elasticsearch 与搜索架构
这一阶段从倒排索引进入相关性、聚合、集群、同步和日志分析。
- 09-01 搜索系统与 Elasticsearch 基础模型 — 解释文档、字段、分片、副本和倒排索引。
- 09-02 Elasticsearch、Kibana、安全与索引生命周期 — 建立本地集群并配置认证和 ILM。
- 09-03 Mapping、Analysis 与数据管理 — 设计字段类型、分词器和动态映射边界。
- 09-04 Query DSL 与 Filter Context — 写出可解释、可缓存的组合查询。
- 09-05 BM25、搜索相关性与排序调优 — 用离线查询集验证权重和召回。
- 09-06 聚合、桶与分析查询 — 控制高基数字段和内存代价。
- 09-07 Spring Boot 搜索服务实战 — 实现索引、查询、聚合和错误处理。
- 09-08 深分页、游标与 Search After — 避免
from/size引起的资源放大。 - 09-09 自定义分词、同义词和中文搜索 — 设计可热更新的分析链路。
- 09-10 高可用集群、容量规划与性能调优 — 计算分片、堆、磁盘和恢复预算。
- 09-11 MySQL 到 Elasticsearch 的一致性 — 比较双写、Binlog CDC 和补偿校验。
- 09-12 微服务日志采集与检索 — 使用 Elastic Agent 或 Logstash 设计采集、脱敏、保留和 Kibana 查询权限。
10. Spring Boot 与微服务
这一阶段从服务边界开始,而不是从注册中心开始。完成后,你能解释为何拆分以及如何承担拆分成本。
- 10-01 单体、模块化单体与微服务 — 按团队、变更、伸缩和一致性需求选择。
- 10-02 领域边界与服务拆分 — 用业务能力、数据所有权和调用关系识别边界。
- 10-03 Spring Cloud 版本与依赖管理 — 使用兼容矩阵和 BOM 避免依赖漂移。
- 10-04 Nacos 注册发现与健康检查 — 理解注册、订阅、临时实例和保护阈值。
- 10-05 Nacos 2.x 通信与服务端源码 — 追踪 gRPC 客户端、服务端和数据同步。
- 10-06 LoadBalancer 与客户端负载均衡 — 比较轮询、权重、一致性哈希和区域优先。
- 10-07 OpenFeign 调用、编码与错误治理 — 设置超时、连接池、重试和错误映射。
- 10-08 Nacos 配置中心与动态刷新源码 — 处理配置监听、灰度、回滚和敏感项。
- 10-09 Spring Cloud Gateway 路由与过滤链 — 实现鉴权、限流、灰度和请求追踪。
- 10-10 Sentinel 限流、熔断与热点规则 — 按资源、流量和慢调用设计保护策略。
- 10-11 Sentinel 槽链、统计与规则源码 — 追踪 Entry、SlotChain 和滑动窗口。
- 10-12 Seata 在微服务中的落地边界 — 结合业务补偿判断是否使用全局事务。
- 10-13 统一认证:Spring Security、OAuth 2.1 与 Sa-Token — 区分用户、客户端、服务和权限上下文。
- 10-14 SkyWalking 与 OpenTelemetry 链路追踪 — 关联 Trace、日志、指标和业务标识。
- 10-15 契约、版本、兼容与消费者驱动测试 — 控制接口和事件的演进风险。
- 10-16 Spring 扩展点如何支撑微服务组件 — 总结自动装配、拦截器和生命周期模式。
- 10-17 Service Mesh 与应用层治理的取舍 — 判断哪些能力留在代码、Sidecar 或网关。
11. 架构设计方法
这一阶段把技术知识转化为可沟通、可验证的系统方案。
- 11-01 从业务目标提取质量属性 — 把“高性能、稳定”改写为可测试场景。
- 11-02 容量估算与约束建模 — 计算 QPS、带宽、存储、并发和增长假设。
- 11-03 SOLID、内聚耦合与设计坏味道 — 在真实业务代码中识别重构信号。
- 11-04 创建型、结构型与行为型模式 — 只在问题出现时引入模式。
- 11-05 DDD 战略设计 — 识别子域、限界上下文、上下文映射和通用语言。
- 11-06 DDD 战术设计 — 正确使用实体、值对象、聚合、仓储和领域事件。
- 11-07 六边形、整洁架构与依赖倒置 — 隔离领域、适配器和基础设施。
- 11-08 模块化单体与 Spring Modulith — 用模块边界、事件和架构测试控制复杂度。
- 11-09 C4、UML 与时序图 — 为不同读者选择上下文、容器、组件和动态视图。
- 11-10 API 设计:资源、错误、分页与幂等 — 建立可演进的 REST 规范。
- 11-11 事件驱动、CQRS 与 Event Sourcing — 区分必要的解耦和不必要的复杂度。
- 11-12 数据所有权与跨服务查询 — 比较 API Composition、CQRS 和数据产品。
- 11-13 多租户架构与隔离级别 — 权衡共享表、共享库、独立库和密钥隔离。
- 11-14 威胁建模与纵深防御 — 使用资产、信任边界、STRIDE 和安全验收。
- 11-15 架构测试与 Fitness Function — 自动检查依赖、契约、性能和韧性约束。
- 11-16 遗留系统现代化 — 使用绞杀者模式、Branch by Abstraction 和双运行迁移。
- 11-17 技术选型与 PoC — 用决策矩阵、代表性负载和退出策略比较方案。
12. 云原生、可观测性与 SRE
这一阶段让系统具备可部署、可观测、可恢复和可持续运营的能力。
- 12-01 Linux 进程、内存、文件和网络排障 — 建立 Java 服务常用系统命令模型。
- 12-02 Docker 镜像、容器与 Java 资源限制 — 构建非 Root、分层且可扫描的镜像。
- 12-03 Docker Compose 本地环境编排 — 一键启动应用、数据库、缓存和消息系统。
- 12-04 Kubernetes 集群安装、核心对象与控制循环 — 使用自动化安装工具搭建实验集群,并理解 Pod、Deployment、Service 和 Controller。
- 12-05 Kubernetes 网络、存储与服务发现 — 排查 DNS、Ingress、PVC 和网络策略。
- 12-06 在 Kubernetes 部署 Java 微服务 — 配置探针、资源、优雅停机和滚动升级。
- 12-07 配置、Secret 与密钥轮换 — 避免凭证进入镜像、日志和 Git。
- 12-08 Prometheus 指标与 Spring Boot 集成 — 使用 Micrometer、Actuator 和 Node Exporter 采集应用与主机指标。
- 12-09 PromQL 与告警表达式 — 从原始时序计算速率、分位数和错误预算消耗。
- 12-10 Grafana 仪表盘设计 — 用服务、资源和业务三层视图支持排障。
- 12-11 日志结构化、采集与隐私治理 — 统一字段、关联标识、采样和保留期。
- 12-12 Trace、Metric、Log 与 Profile 关联 — 使用 OpenTelemetry 建立统一遥测上下文。
- 12-13 SLI、SLO 与错误预算 — 把可靠性目标连接到发布和优先级决策。
- 12-14 告警、值班与事故响应 — 降低噪声,定义分级、升级和沟通机制。
- 12-15 CI/CD、制品与供应链安全 — 构建可追溯、可签名、可回滚的流水线。
- 12-16 灰度、蓝绿、金丝雀与 GitOps — 按风险选择发布策略并自动判断回滚。
- 12-17 混沌工程、容量压测与灾难恢复 — 用故障演练验证 RTO、RPO 和降级路径。
13. AI 原生 Java 应用
这一阶段把大模型能力接入 Java 系统,同时保留确定性校验、安全边界和质量评测。
- 13-01 Java 架构师需要理解的 LLM 基础 — 解释 Token、上下文、采样、幻觉和成本。
- 13-02 Spring AI 模型调用与可替换接口 — 构建第一个支持超时、重试和观测的应用。
- 13-03 Prompt、模板与结构化输出 — 用 Schema 把自然语言输出变成可校验数据。
- 13-04 Tool Calling 与业务权限边界 — 让模型提议动作,由后端验证并执行。
- 13-05 RAG:切分、Embedding、检索与引用 — 构建带来源、权限和离线评测的知识问答。
- 13-06 对话记忆与上下文工程 — 管理短期状态、摘要、预算和敏感信息。
- 13-07 Workflow、Agent 与人工审批 — 区分确定流程和开放决策,控制循环与副作用。
- 13-08 MCP 与企业工具接入 — 设计工具描述、认证、传输、审计和错误协议。
- 13-09 LLM 可观测性、评测与发布门禁 — 建立 Golden Dataset、Trace 和在线监控。
- 13-10 Prompt Injection、数据泄漏与 AI 安全 — 设置输入、检索、工具和输出四层防线。
- 13-11 智能客服系统实战 — 实现检索、工单工具、转人工和效果评测。
- 13-12 GenUI 与短视频 AI 场景 — 讨论生成式界面和内容理解的状态、安全与体验。
14. 综合系统项目
这一阶段用一个匿名化的高并发交易平台贯穿前面的技术。每篇文章都产出代码、图、测试和运维证据。
- 14-01 从业务目标到系统上下文 — 梳理用户、订单、商品、库存、营销和支付边界。
- 14-02 本地开发环境与一键启动 — 用 Compose 和初始化脚本建立可复现环境。
- 14-03 后台管理、CRUD 与审计日志 — 从简单功能建立权限、校验和变更追踪。
- 14-04 多数据源路由与租户隔离 — 实现动态数据源并防止上下文串线。
- 14-05 从单体到微服务的渐进拆分 — 使用依赖分析、契约和双运行降低风险。
- 14-06 网关、统一认证与服务间身份 — 打通登录、Token、权限和内部调用。
- 14-07 Nginx 日志与分布式链路追踪 — 从入口定位一次跨服务失败。
- 14-08 订单聚合与状态机 — 设计下单、取消、支付、关闭和幂等约束。
- 14-09 营销促销的规则模型 — 处理优惠叠加、快照、试算和并发更新。
- 14-10 分布式 ID、读写分离与数据路由 — 支撑订单增长并保留迁移空间。
- 14-11 分库分表与历史数据归档 — 设计路由、分页、扩容和审计查询。
- 14-12 支付回调与账务一致性 — 处理签名、重复通知、对账和补单。
- 14-13 延迟消息优化订单超时关闭 — 比较轮询、延迟队列和时间轮。
- 14-14 分布式事务与补偿流程 — 为订单、库存和优惠建立可恢复 Saga。
- 14-15 MySQL、Redis 与搜索索引一致性 — 使用 Binlog CDC、Canal 和核对任务。
- 14-16 限流、熔断、降级与核心链路兜底 — 按用户体验和数据正确性设计保护层。
- 14-17 海量数据读写与高性能搜索 — 组合分片、缓存、异步化和 Elasticsearch。
- 14-18 Kubernetes 部署与全链路监控 — 完成发布、指标、日志、Trace 和告警。
- 14-19 秒杀系统的库存、排队与防刷 — 设计热点隔离、令牌、异步下单和最终一致。
- 14-20 秒杀压测、瓶颈定位与架构升级 — 用容量数据驱动扩容和降级。
- 14-21 短视频系统:上传、转码、推荐入口与互动 — 处理大文件、异步任务和热点内容。
- 14-22 AI 客服接入交易系统 — 让检索和工具调用遵守租户、订单与审批边界。
15. 工程治理与架构运营
这一阶段关注系统长期可维护性。架构师需要持续经营架构,而不是只交付一次设计图。
- 15-01 代码规范、静态分析与质量门禁 — 把关键约束放入 CI。
- 15-02 依赖、许可证、SBOM 与漏洞治理 — 建立发现、分级、升级和例外流程。
- 15-03 API、事件与数据 Schema 治理 — 约束兼容性、所有权和弃用周期。
- 15-04 技术债务台账与偿还策略 — 按风险、成本和业务机会排序。
- 15-05 版本升级与平台迁移计划 — 设计兼容层、分批、监控和回滚。
- 15-06 容量、成本与 FinOps — 把资源利用率、单位成本和 SLO 放在同一张表里。
- 15-07 数据分类、隐私与保留策略 — 明确最小收集、访问、脱敏和删除责任。
- 15-08 备份、容灾与业务连续性 — 让恢复演练覆盖人、流程、依赖和数据。
- 15-09 架构评审机制与检查清单 — 在关键决策前发现安全、数据和运维缺口。
- 15-10 变更管理、发布治理与审计 — 平衡交付速度、职责分离和可追溯性。
- 15-11 事故复盘与系统性改进 — 从时间线、促成因素和行动项改进系统。
- 15-12 平台工程与开发者体验 — 用黄金路径减少重复工作,同时保留逃生通道。
16. 技术领导力与软实力
这一阶段训练架构师如何让正确决策在组织中发生。软实力的验收物是文档、会议结果、风险变化和团队成长。
- 16-01 架构师的影响力来自什么 — 区分职权、专业信誉、关系和可预测交付。
- 16-02 需求澄清与问题定义 — 用目标、用户、约束、非目标和成功指标避免解错题。
- 16-03 利益相关者地图与沟通计划 — 为业务、研发、测试、运维和管理者设计不同信息。
- 16-04 写一份可决策的技术方案 — 把摘要、选项、证据、风险和请求放在前面。
- 16-05 主持架构评审 — 控制议题、时间、异议、结论和后续责任人。
- 16-06 技术分歧与冲突处理 — 让观点回到目标、证据和可逆性。
- 16-07 估算、计划与风险沟通 — 使用区间、假设、依赖和触发条件表达不确定性。
- 16-08 跨团队依赖与接口协作 — 建立所有权、契约、升级路径和交付节奏。
- 16-09 高质量 Code Review — 同时改善正确性、知识传播和心理安全。
- 16-10 指导工程师成长 — 用任务分级、反馈和授权培养下一层技术负责人。
- 16-11 在信息不足时做决策 — 区分可逆与不可逆决策,设置试验和止损点。
- 16-12 无责事故复盘与困难沟通 — 讨论系统条件,不用个人错误替代根因。
- 16-13 技术战略与演进路线图 — 把业务能力、平台投入、风险和里程碑连接起来。
- 16-14 招聘与系统设计面试 — 使用结构化评分,减少光环效应和技术偏见。
- 16-15 向管理层讲清技术投资 — 用收入、成本、风险和期权价值表达架构工作。
- 16-16 建立团队技术文化 — 通过标准、示范、反馈和奖励塑造日常行为。
17. 毕业设计与能力验收
这一阶段要求你交付一个可运行、可观测、可恢复的系统,以及支撑其决策的完整证据。
- 17-01 毕业设计需求与约束 — 定义交易、搜索、秒杀和 AI 客服的范围及非目标。
- 17-02 架构提案与 ADR 集合 — 提交至少三个备选方案和关键决策记录。
- 17-03 迭代一:模块化单体与工程基线 — 先完成正确业务、测试、观测和自动发布。
- 17-04 迭代二:按证据拆分服务 — 只拆需要独立伸缩或独立演进的边界。
- 17-05 可靠性与安全验收 — 运行压测、故障注入、威胁测试、备份恢复和回滚。
- 17-06 架构答辩与复盘 — 解释权衡、偏差、成本、后续路线和个人成长证据。
知识覆盖检查
这张表把原始技术主题映射到新的学习阶段。后续生成文章时,以“主题已被完整解释并由实践验证”为完成标准,不能只在 标题中出现关键词。
| 知识域 | 覆盖阶段 | 重点验收 |
|---|---|---|
| Java 语言、JDK 演进、构建与测试 | 01 | 可运行工程、版本迁移和自动测试 |
| JVM、类加载、字节码、执行引擎与 GC | 02 | 诊断证据、调优基线和回归验证 |
| JMM、锁、JUC、线程池与 Disruptor | 03 | 并发正确性、背压和可重复测试 |
| TCP/IP、NIO、epoll、Netty 与 Tomcat | 04 | 端到端请求链和服务器调优 |
| Spring、Spring MVC、Spring Boot 与 MyBatis 源码 | 05—06 | 扩展点、代理、事务和执行链 |
| MySQL 索引、事务、日志、复制与高可用 | 06 | SQL、锁、恢复、扩容和 RPO/RTO |
| Redis 数据结构、缓存、锁、热点与集群 | 07 | 一致性、故障模式和容量证据 |
| ZooKeeper、分片、分布式事务 | 08 | 协议边界、路由、补偿和恢复 |
| RabbitMQ、Kafka 与 RocketMQ | 08 | 投递、消费、顺序、积压和选型 |
| Elasticsearch 查询、集群、调优与数据同步 | 09 | 相关性、容量、一致性和日志检索 |
| Spring Cloud、Nacos、Sentinel、Seata 与 Gateway | 10 | 服务治理源码、配置和故障保护 |
| 设计模式、DDD、架构图、API 与安全 | 11 | 可复核的方案、ADR 和 Fitness Function |
| Docker、Kubernetes、Prometheus 与 Grafana | 12 | 部署、遥测、SLO、发布和容灾 |
| Spring AI、RAG、Agent、MCP 与 GenUI | 13 | 质量评测、权限、安全和人工审批 |
| 交易、订单、支付、秒杀、搜索与短视频项目 | 14 | 代码、测试、压测、观测和故障演练 |
| 质量、供应链、数据、成本和架构治理 | 15 | 持续机制、负责人和审计证据 |
| 沟通、协作、决策、培养与技术战略 | 16 | 可落地结论、组织协同和团队成长 |
后续文章模板
每篇文章按同一完成定义编写,保证知识循序渐进且可以验证。
- 先说明读者会解决什么问题,以及需要哪些前置知识。
- 定义术语,并用最小案例建立直觉。
- 提供完整项目、依赖版本、启动命令和预期输出。
- 解释关键原理、调用链或数据流,不把源码逐行翻译当作原理。
- 加入失败案例、排查步骤、测试和安全边界。
- 比较至少一个替代方案,说明适用条件和迁移成本。
- 用检查清单验收,并链接到下一篇文章。
版本基线参考 Java SE 支持路线图、 JEP 444:Virtual Threads、 Spring Boot 官方项目页 和 Spring Framework 官方项目页。后续写作会以各项目官方文档和可运行代码 为准,不依赖培训资料中的身份、品牌或私有链接。