**重构核心:从业务代码到系统架构的跃迁**

这套课程主要解决的是初中级 Java 工程师在晋升高级或架构师岗位时遇到的“天花板”问题。许多开发者熟练掌握 Spring Boot 等框架的 CRUD 操作,但在面对高并发、数据一致性或系统解耦时,往往缺乏整体视野。本课程不教基础语法,而是聚焦于互联网架构师视角的系统设计思维。它通过真实业务场景,剖析如何从单体应用走向微服务,如何处理分布式事务,以及如何进行性能优化。适合具备至少 2 到 3 年 Java 开发经验、熟悉 JVM 原理及常见中间件(如 Redis、Kafka)的读者。如果你是刚入职的初级工程师,建议先补足底层基础再接触此内容,否则容易陷入“知其然不知其所以然”的困境。

**学习路径:优先攻克架构设计与稳定性保障**

建议不要按部就班地从头听到尾,而是根据你的痛点选择模块。首先重点研读“分布式系统设计”部分,这部分是架构师面试与实战的核心,详细讲解了服务拆分原则、API 网关设计及熔断限流机制。其次是“高可用与高并发”章节,通过案例演示如何识别系统瓶颈并利用异步化、缓存策略进行优化。最后再回顾“DevOps 与自动化”环节,理解如何将架构设计落地到持续集成与持续部署流程中。学完这套体系,你应能独立完成中等规模微服务系统的架构设计文档,能够预判潜在的性能风险并制定相应的灾备方案,而不仅仅局限于编写单个功能模块的代码。

**资料配合:理论复盘与代码实战并重**

资料包中的核心价值在于配套的架构思维导图与案例分析实录,而非单纯的视频回放。建议在学习过程中,将讲师提出的架构选型对比表打印出来,结合自己实际项目的痛点进行对照反思。对于涉及的中间件调优部分,务必在本地搭建模拟环境,复现课程中提到的慢 SQL、内存泄漏或线程池溢出等问题,并记录排查日志。不要只靠“听”,必须动手修改配置参数并观察系统指标变化。资料中的源码工程可作为参考模板,但严禁直接复制粘贴,需理解每个设计模式的适用边界。通过这种“理论推导 + 实操验证”的闭环,才能真正将架构思维内化为解决复杂业务问题的直觉能力,避免陷入空谈理论的误区。

课程目录

01JVM性能调优 01 虚拟机的前世今生和Java内存区域(1) (2) 02 深入理解Java内存区域(1) (2) 03 玩转JVM中的对象及引用(1) (2) 04 分代回收机制及垃圾回收算法(1) (2) 05 JVM面试“核武器”JVM底层细节(1) (2) 06 Class文件结构及深入字节码指令(1) 07 类加载机制与类加载器(1) 08 方法调用的底层实现(1 09 Java语法糖及实现(1) 10 GC调优基础知识之工具篇(原生+Arthas)(1) 

02 JVM性能调优 01 GC调优基础知识之工具篇(原生+Arthas)(2) (2) 02 JVM调优实战之CPU占用过高(1) (2) 03 JVM性能调优之预估调优与问题排查(1) (2) 04 玩转MAT,分析内存泄漏(1) 05 直接内存与JVM源码分析(1) 06 JVM之大结局(1) 

03 并发 课程目录 课程目录 01JVM性能调优 01 虚拟机的前世今生和Java内存区域(1) (2) 02 深入理解Java内存区域(1) (2) 03 玩转JVM中的对象及引用(1) (2) 04 分代回收机制及垃圾回收算法(1) (2) 05 JVM面试“核武器”JVM底层细节(1) (2) 06 Class文件结构及深入字节码指令(1) 07 类加载机制与类加载器(1) 08 方法调用的底层实现(1 09 Java语法糖及实现(1) 10 GC调优基础知识之工具篇(原生+Arthas)(1) 

02 JVM性能调优 01 GC调优基础知识之工具篇(原生+Arthas)(2) (2) 02 JVM调优实战之CPU占用过高(1) (2) 03 JVM性能调优之预估调优与问题排查(1) (2) 04 玩转MAT,分析内存泄漏(1) 05 直接内存与JVM源码分析(1) 06 JVM之大结局(1) 

03 并发编程 01 java线程的本质、线程模型(1) (2) 01 java线程的本质、线程模型(1) 02 java线程run方法的本质(1) (2) 02 java线程run方法的本质(1) 03 synchronized关键字得原理分析一(1) (2) 03 synchronized关键字得原理分析一(1) 04 synchronized关键字原理—锁的膨胀(1) (2) 04 synchronized关键字原理—锁的膨胀(1) 05 synchronized关键字原理-锁的膨胀过程(1 (2) 05 synchronized关键字原理-锁的膨胀过程(1 06 synchronized关键字原理-锁的膨胀过程二(1) 07 synchronized关键字原理-锁的膨胀过程三(1) 08 synchronized关键字的使用和优化(1) 

09 ReentranLock 的基本使用和设计模式(1) 

04 并发编程 01 aqs框架的源码分析(1) (2) 02 ReentrantLock解锁流程和读写锁源码(1) (2) 03 aqs之读写锁原理分析(1) (2) 04 juc工具类的使用和原理(1) (2) 05 模拟线程池的原理实现(1) (2) 06 ThreadPoolExecutor线程池(1) (2) 07 线程池源码分析(1) 08 如何解决JAVA的有序性和可见性(1) 09 如何理解JAVA的内存模型(1) 10 currenthashmap源码分析(1) 

05 并发编程网络协议与netty 01 forkjoin线程池得原理和应用(1) (2) 02 网络协议和常用网络工具(1) (2) 03 Java原生网络编程(1) (2) 04 Java原生网络编程2(1) (2) 05 Java原生网络编程3(1) (2) 06 Netty基础入门和应用(1) (2) 

06 网络协议 01 Netty基础入门和应用2(1) (2) 02 Netty基础入门和应用3(1) (2) 03 Netty基础入门和应用4(1) (2) 04 Netty进阶和实战(1) (2) 

07 网络协议与Netty 01 Netty进阶和实战2(1) (2) 01 Netty进阶和实战2(1) 02 Netty进阶和实战3(1) (2) 02 Netty进阶和实战3(1) 03 Linux和JDK对网络通信的实现(1) 04 Linux和JDK对网络通信的实现2(1) 05 Linux和JDK对网络通信的实现3(1) 06 Linux和JDK对网络通信的实现4(1) 07 Netty源码解析(1) 

08 网络协议与NettySpring源码 01 Netty源码解析2(1) 02 Netty源码解析3(1) 03 Netty源码解析4(1) 04 Netty源码解析5(1) 05 spring源码编译和xml解析(1) 

09 Spring源码 01 BeanDefinition和默认标签、自定义标签解析(1) (2) 01 BeanDefinition和默认标签、自定义标签解析(1) 02 component-scan标签解析和bean实例化初探(1) (2) 02 component-scan标签解析和bean实例化初探(1) 03 BeanPostProcessor和Bean实例化初探(1) 04 bean的实例化和注解的收集(1) 

10 Spring源码 1 @Autowired@PostConstruct@PreDestroy注解(1) 2 spring中循环依赖详解(1) 3 spring中配置文件解析和Environment对象 

11 spring源码 自定义scope和factoryBean接口(1) 

12 Spring源码 1 ConfigurationClassPostProcessor类源码(1) 2 ConfigurationClassPostProcessor类源码2(1) 3 spring的实战代码案例1及AOP基础 4 动态代理和AOP的初见 5 代理的生成和链式调用流程 

13 Spring源码 1 链式调用过程和AOP周边 2 spring的实战代码案例2之巩固AOP 3 spring的事务切面精讲1 4 spring的事务传播属性精讲 

14 Spring源码 1 spring的事务传播属性精讲 2 缓存切面和异步切面 3 缓存框架和springmvc零配置原理 4-1springmvc中请求的调用流程 4-2 springmvc中请求的调用流程 5 JSON参数解析和视图响应 

15 Spring源码mybatis 2 异常处理、拦截器和跨域问题 3 springmvc实战、spring总流程归档 4 spring总流程归档 5 MyBatis开发重点知识 6 mybatis缓存使用和xml解析源码 7 MyBatis开发重点知识 

16 MyBatis 1 全局xml解析和mapper中sql的解析 2 SQL的执行之Executor组件 3 StatementHandler和ResultSetHandler组件 4 mybatis中的缓存原理和懒加载原理 5 mybatis的plugin和跟spring的整合 6 mybatis跟spring整合自定义分页等插件原理 

17 MySQL 1 自定义分页等插件及mybatis复习 2 全盘了解MySQL 3 MySQL中表设计和数据类型优化 4 高性能索引(一) 

17 分布式常见场景解决方案实战MongoDB进阶 1 session共享与单点登陆实战 2 分布式任务调度实战 3 MongoDb综 4 MongoDb快速入门 

18 MongoDB进阶 1 MongoDb查询进阶- 2 MongoDb操作进阶- 

18 MySQL 1 高性能索引(二) 2 高性能索引(三) 

19 MongoDB进阶spring源码分析 1 MongoDb高级进阶 

19 MySQL 1 MySQL性能优化(一) 2 MySQL性能优化(二) 3 MySQL的底层执行原理(一) 4 MySQL的底层执行原理(二) 

20 MySQL 1 MySQL的底层执行原理(三) 2 InnoDB引擎底层解析 

21 MySQL 1 InnoDB引擎底层解析 2 事务的原理和MVCC 3 事务的原理和MVCC(二) 4 MySQL中的锁、面试题和实战那些事 21 spring5源码分析 1 循环依赖原理和Bean实例化大流程梳理- 2 @Bean@Import和bean的多例作用域- 

22 MySQLRocketMQ 1 MySQL中的锁、面试题和实战那些事(二)- 2 RocketMQ基础篇(上)- 3 RocketMQ基础篇(下)- 4 RocketMQ内部机制-存储设计- 

23 RocketMQ 1 RocketMQ内部机制-高可用机制- 2 RocketMQ实战-异步结构与流量削峰- 

24 RocketMQ 1 RocketMQ实战-限时订单与分布式事务- 2 RocketMQ源码分析-整体架构与NameServer- 3 RocketMQ源码分析-Producer与Store- 4 RocketMQ源码分析-Consumer- 

25 Dubbo 1 Dubbo源码探析--服务的暴露与消费过程- 2 Dubbo源码探析--服务的发布订阅过程- 回顾 │ 3 spring的实战代码案例1(1)- │ 4 aop入口及aop中的各种advice和advisor(1)- │ 5 AOP链式调用过程和cglib动态代理(1)- │ 

07 网络协议与Netty 01 Netty进阶和实战2(1)- 02 深入学习Netty组件(1)- 03 TCP粘包,半包问题和Netty编解码器框架(1)- 04 序列化问题、实现UDP通信(1)- 05 服务器推送技术-轮询、SSE和WebSocket(1)- 06 基于Netty的WebSocket通信(1)- 07 基于Netty实现自己的通信框架(1)- 

08 Netty高级进阶 01 BIO和NIO的源码解析(1)- 02 Netty源码解析(一)(1)- 03 Netty源码解析(二)(1)- 04 操作系统网络底层原理和源码(一)(1)- 05 操作系统网络底层原理和源码(二)(1)- 

09 Tomcat系统进阶 01 Tomcat源码解读(1) 02 Tomcat架构解析(1) 

13 Spring源码 1 数据库事务和spring如何管理事务(1)- 1 数据库事务和spring如何管理事务(1)- 2 spring事务的传播属性和隔离级别源码讲解- 2 spring事务的传播属性和隔离级别源码讲解- 3 事务隔离级别 cacheable缓存切面和异步切面- 3 事务隔离级别 cacheable缓存切面和异步切面- 4 spring的实战代码案例2- 4 spring的实战代码案例2- 

14 Spring源码 1 零xml配置整合springmvc和嵌入式tomcat- 1 零xml配置整合springmvc和嵌入式tomcat- 2 springmvc请求响应核心调用流程和过滤器- 2 springmvc请求响应核心调用流程和过滤器- 3 特殊参数解析返回值解析视图渲染- 3 特殊参数解析返回值解析视图渲染- 4 spring&springmvc大总结- 4 spring&springmvc大总结- 5 spring&springmvc大总结- 5 spring&springmvc大总结- 

15 Spring源码 1 静态视图、异常处理和拦截器- 1 静态视图、异常处理和拦截器- 2 搞定RocketMQ消息存储及事务- 2 搞定RocketMQ消息存储及事务- 3 主从同步机制和与Spring整合- 3 主从同步机制和与Spring整合- 4 RocketMQ限时订单实战- 4 RocketMQ限时订单实战- 5 RocketMQ源码解析- 5 RocketMQ源码解析- 6 Redis从入门到狂澜- 6 Redis从入门到狂澜- 7 RocketMQ源码解析- 7 RocketMQ源码解析- 16 Redis高性能缓存数据库分布式常见场景解决方案实战 1 BAT常见Redis场景设计实战- 1 BAT常见Redis场景设计实战-