声明:本网站所有内容均为资源介绍学习参考,如有侵权请联系后删除
课程详细介绍内容
第一阶段:单体项目开发与上线(1-5周)
第1周 万丈高楼,地基首要
在开始系统化成长之初,先从整体上认知大型互联网系统架构演变历程,明确架构师需要具备哪些技术栈与核心能力,之后开始筑基-单体开发。
课程安排:
1. 大型互联网系统架构演变历程
2. Java架构师需要具备的技术栈与能力
3. 项目演示与单体架构技术选型
4. 前后端分离开发模式与项目分层设计原则
5. 聚合工程构建与SpringBoot2
6. 基于PDMan工具为数据库建模
7. 整合HikariCP与MyBatis
8. MyBatis数据库逆向生成
9. 结合通用Mapper,编写Restful风格Api
10. 事务传播详解
11. 用户注册/登录流程详解与功能开发
12. 整合与优化Swagger2文档Api
13. API文档生成工具Swagger2
14. 设置跨域配置实现前后端联调
15. 整合Log4j打印日志
16. 通过日志监控Service执行时间
17. 用户退出登录清空Cookie
18. 开启MyBatis日志Sql打印
第2周 分类,推荐,搜索,评价,购物车开发
本周首先带大家分析电商首页需求,然后实现首页轮播图功能,分类功能,商品推荐功能,搜索功能,商品评价功能,最后带大家开发电商核心功能模块-购物车。
课程安排:
1. 电商首页轮播图功能开发
2. 首页分类需求分析
3. 分类实现 - 加载与渲染大分类
4. 分类实现 - 自连接查询子分类
5. 分类实现 - 自定义Mapper实现懒加载子分类展示
6. 商品推荐 - 需求分析与Sql查询
7. 商品推荐 - 实现接口与联调
8. 商品评价 - 数据库设计
9. 商品评价 - 评论分页实现
10. 商品评价 - 信息脱敏
11. 搜索商品 - 功能详述与Sql编写
12. 搜索商品 - 商品搜索功能实现
13. 搜索商品 - 前端业务与分类搜索查询
14. 搜索商品 - 分类搜索商品查询实现
15. 购物车 - 购物车存储形式
16. 购物车 - 未登录已登录加入购物车业务代码讲解
17. 购物车 - 渲染(刷新)购物车
18. 购物车 - 删除商品业务讲解
第3周 收货地址,订单,支付 ,定时任务开发
本周首先带大家完成收获地址的开发,接着开发电商核心业务功能-订单,支付(微信支付,支付宝支付),最后带大家设计一个定时任务,实现定时关闭超期未支付订单功能。
课程安排:
1. 收货地址 - 需求分析与表设计
2. 收货地址 - 增删改查功能开发
3. 收货地址 - 默认收货地址设置
4. 确认订单 - 订单流程梳理与订单状态
5. 确认订单 - 订单表设计
6. 确认订单 - 聚合支付中心作用
7. 确认订单 - 提交并且接受订单信息
8. 创建订单 - 填充新订单数据
9. 创建订单 - 保存订单与子订单数据
10. 创建订单 - 扣除商品库存与订单状态保存
11. 创建订单 - 测试订单创建与回滚
12. 创建订单 - 创建订单后,前端的业务处理
13. 微信支付 - 构建商户端支付成功的回调接口
14. 微信支付 - 生成支付二维码
15. 微信支付 - 商户回调地址与内网穿透
16. 支付宝支付 - 异步通知与同步通知
17. 定时任务 - 定时关闭超期未支付订单
18. 定时任务 - 定时任务弊端与优化方案
第4周 用户中心 ,订单/评价管理开发
本周首先带大家完成用户中心模块,之后一起完成订单管理,评价管理功能,完善中心首页,通过本周的学习,我们已经完全有能力架构与开发任何一个单体的项目了。
课程安排:
1. 用户中心 - 查询,修改用户信息
2. 用户中心 - 使用Hibernate验证用户信息
3. 上传头像 - 定义文件保存位置
4. 上传头像 - 图片格式限制以防后门
5. 上传头像 - 大小限制,以及自定义捕获异常
6. 订单管理 - 查询我的订单Sql
7. 订单管理 - 嵌套查询分页Bug解决方案
8. 订单管理 - 操作订单前的验证
9. 评价管理 - 评价需求分析
10. 评价管理 - 待评价商品列表开发
11. 评价管理 - 评价商品功能开发
12. 中心首页 - 订单状态接口联调
13. 中心首页 - 订单动向接口联调
第5周 云服务器部署上线
本周带大家一起打包与发布前端项目,后端项目到云服务器上,最后让大家拥有一个上线电商项目。
课程安排:
1. 云服务器购买及安装配置(JDK/Tomcat/MariaDB)
2. SpringBoot多环境部署profile(开发环境/生产环境)
3. SpringBoot项目打成war并发布到云服务器
4. 前端项目发布
5. 解决Cookie异常,测试订单支付流程
第二阶段:从单体到高可用集群演进(6-8周)
第6周 LVS+Keepalived+Nginx实现高可用集群
本周开始,我将从单体演进到集群,首先带大家学习Nginx,负载均衡等相关技术,之后带大家通过LVS+Keepalived+Nginx实现高可用服务器集群, 从而降低单节点负载压力。
课程安排:
1. 在Nginx中解决跨域问题
2. 在Nginx中配置静态资源防盗链
3. 使用Nginx搭建3台Tomcat集群
4. 使用JMeter测试单节点与集群并发异常率
5. 使用 keepalived提高吞吐量
6. 负载均衡原理剖析 - ip_hash - url hash 与 least_conn
7. 一致性hash算法讲解
8. Nginx控制浏览器缓存
9. Nginx反向代理缓存
10. 使用Nginx配置SSL证书提供HTTPS访问
11. Nginx单实例存在的问题与集群原理详解
12. 心跳机制与自动重启实现
13. 动静分离的那些事儿
14. 部署Nginx到云端 - 实现动静分离与虚拟主机
15. 部署Nginx到云端 - 测试与日志调试
16. 实现Keepalived高可用双机主备
17. 实现Keepalived高可用双机热备
18. LVS+Keepalived+Nginx实现高可用集群 负载均衡
第7周 主从复制高可用Redis集群
本周首先会对Redis的架构与原理进行解析,之后整合Redis,实现Redis哨兵,搭建主从复制高可用Redis集群等,最后带大家解决缓存雪崩,穿透等问题。
课程安排:
1. Redis架构与原理解析
2. 在SpringBoot中整合Redis实现数据存取
3. 基于Redis优化首页轮播图和分类查询
4. 在Redis中实现订阅功能
5. Redis中RDB,AOF持久化工作原理解析
6. Redis主从架构模式讲解
7. Redis主从复制,无磁盘化复制原理解析
8. 过期的缓存Key处理方案
9. Redis哨兵机制与原理解析
10. Redis哨兵落地实现
11. Redis集群解决方案设计
12. Redis集群原理解析
13. 主从复制高可用Redis集群搭建
14. SpringBoot集成Redis集群环境
第8周 Redis缓存雪崩,穿透
本周会帮大家分析缓存雪崩现象,然后为大家讲解缓存雪崩的解决方案,缓存穿透的解决方案,并且带大家一起落地解决对应的问题,最后为家拓展讲解Redis批量查询的优化设计。
课程安排:
1. 缓存雪崩现象解析
2. 缓存雪崩的解决方案与落地
3. 缓存穿透的解决方案与落地
4. 拔高-Redis批量查询的优化设计
第三阶段:逐个击破分布式核心问题(9-17周)
第9周 分布式会话与单点登录SSO
本周开始,我们将从集群演进到分布式架构。但在分布式环境下又会有更多问题等待着我们去解决。现在我们就来一起解决下分布式会话与单点登录相关问题。
课程安排:
1. 有状态会话和无状态会话区别
2. 动静分离架构下的用户会话解决方案
3. 集群与分布式系统中的用户会话解决方案
4. 单个Tomcat会话和全局Redis会话关系
5. 通过Redis+Cookie来实现前后端分离与分布式会话
6. 多系统跨域的用户会话问题
7. 常见的会话跨域形式(Session 共享)
8. Cookie实现Session跨域与原理
9. spring-session实现与原理
第10周 分布式搜索引擎-Elasticsearch
本周我们首先会以架构师角度分析目前搜索业务的弊端,之后由浅入深讲解ES,集成ES集群,优化商品搜索与分类搜索等功能,最后拓展2个案例让大家更加深入的理解ES。
课程安排:
1. ES架构与原理解析
2. ES健康状况详解
3. dsl搜索(分词,分页,多关键字匹配,布尔查询)
4. 出现不合法搜索如何定位问题
5. ES集群原理,shard与replica
6. 集成ES集群故障之节点宕机
7. 集成ES集群故障之脑裂问题探讨
8. 集群环境中(分布式)文档的存取原理
9. MySql和ES进行数据同步的方案分析
10. 基于Logstash进行数据同步
11. 基于ES实现商品搜索与分类搜索
12. ES深度分页下会带来怎样的性能问题
13. 大数据量下该如何使用Scoll滚动技术进行搜索
14. ES拓展 - 基于Geo的地理坐标搜索实现
15. ES拓展 - 社交案例,距离我几公里内的好友
第11周 分布式文件系统-FastDFS+阿里OSS
在分布式系统中,文件系统是必须被所有节点访问的,为了解决单体架构中文件服务的单一性问题,我们需要学习分布式文件存储(FastDFS、阿里OSS云存储)。
课程安排:
1. 以架构师角度分析目前文件上传所存在的问题
2. 分布式文件系统技术选型:FastDFS VS 阿里OSS
3. FastDFS架构与原理解析
4. Nginx + FastDFS 实现文件服务器
5. FastDFS整合SpringBoot,修改项目中文件上传
6. 第三方图片存储解决方案
7. 阿里OSS存储与实现原理
8. SpringBoot整合阿里OSS SDK与API
9. 实现图片上传到OSS中
10. 在生产环境中切换文件存储为FastDFS
第12周 分布式消息队列-RabbitMQ
本周首先会讲解业界主流消息队列技术选型,提升大家的技术判断能力,之后是SpringBoot与RabbitMQ整合,最后带大家进行RabbitMQ基础组件封装。一起感受代码设计魅力吧。
课程安排:
1. 业界主流消息队列与技术选型
2. ActiveMQ集群架构与原理解析
3. RabbitMQ集群架构与原理解析
4. RocketMQ集群架构与原理解析
5. Kafka集群架构与原理解析
6. RabbitMQ核心API与高级特性
7. RabbitMQ与SpringBoot整合实战(生产端,消费端)
8. RabbitMQ镜像队列集群构建
9. RabbitMQ消息可靠性投递机制实战
10. 作为架构师如何去进行高层次的抽象公共API封装,消息序列化
11. 生产端SDK自动装配与架构接口定义
12. 生产端发送迅速异步消息
13. 生产端RabbitTemplate池化封装
14. 生产端消息序列化反序列化转换封装
15. RabbitMQ基础组件封装-基础组件应用演练
16. 分布式定时任务组件封装
17. 可靠性消息重试实现集成定时任务组件
18. 批量,延迟消息应用与封装实现
第13周 分布式消息队列-Kafka
本周我们来深入学习另外一个分布式消息队列-Kafka,然后基于Kafka搭建一个高吞吐量日志收集平台,让大家在实战中彻底掌握Kafka。
课程安排:
1. Kafka核心API
2. Kafka与SpringBoot整合实战
3. Kafka高吞吐量-海量日志收集架构设计
4. Kafka高吞吐量-日志输出(Log4j2)
5. Kafka高吞吐量-日志收集(FileBeat)
6. Kafka高吞吐量-日志过滤(Logstash)
7. Kafka高吞吐量-日志持久化(Elasticsearch)
8. Kafka高吞吐量-日志可视化(Kibana)
9. Kafka监控告警watcher监控告警实战
第14周 分布式锁
在高并发场景下资源共享问题是比较常见也是必须要解决的。本周我们就学习多种基于分布式锁的解决方案,对比它们各自的优缺点,最后大家可以根据自己项目实际情况进行选择。
课程安排:
1. 如何使用锁解决电商项目产生的超卖问题?
2. 基于Synchronized锁解决超卖问题(最原始的锁)
3. 基于ReentrantLock锁解决超卖问题(并发包中的锁)
4. 乐观锁与悲观锁,公平锁与非公平锁
5. 单体应用锁局限性分析&解决方案
6. 基于数据库的悲观锁实现分布式锁
7. 基于Redis的setnx实现分布式锁
8. 基于Zookeeper的瞬时节点实现分布式锁
9. 基于Zookeeper的客户端Curator实现分布式锁
10. 基于Redis的Java客户端Redisson实现分布式锁
11. 如何在电商项目中引入Redisson分布式锁
12. 多种分布式锁技术实现方案,如何选择?
第15周 读写分离、分库分表-MyCAT和Sharding-JDBC
随着系统数据量的增加,单体数据库存储性能问题日益凸显,本周我们就来学习2种数据源读写分离和分库分表的解决方案-MyCAT和Sharding-JDBC。
课程安排:
1. 如何选择垂直切分、水平切分
2. MyCAT快速体验
3. MyCAT用户配置
4. MyCAT的schema配置实操
5. MySql主从配置
6. MyCAT分片规则配置(枚举分片、取模)
7. MyCAT全局表、子表
8. MyCAT高可用架构原理解析
9. MyCAT高可用架构-反向代理(HAProxy)
10. MyCAT高可用架构-故障转移(Keepalived)
11. Sharding-JDBC分片表 (Spring和SpringBoot)
12. Sharding-JDBC全局表(Spring和SpringBoot)
13. Sharding-JDBC子表(Spring和SpringBoot)
第16周 分布式全局唯一主键ID、分布式事务和数据一致性
分库分表后,引发了ID重复问题、分布式事务等问题,本周我们会学习多种分布式全局ID的解决方案以及多种分布式事务的解决方案。
课程安排:
1. 分布式全局ID的多种解决方案
2. 使用UUID作为分布式全局唯一主键ID
3. 基于MyCAT实现全局唯一主键ID(本地文件和数据库)
4. 基于雪花算法实现全局唯一主键ID
5. 分布式系统CAP、BASE原理和ACID原则
6. 分布式事务问题解析
7. 基于XA协议的两阶段提交解决数据一致性问题
8. 使用Atomikos做分布式事务
9. MyCAT与Sharding-JDBC分布式事务
10. 基于事务补偿机制解决数据一致性
11. 基于本地消息表+定时任务解决数据一致性
12. 基于MQ生产消费模型解决数据一致性
第17周 分布式接口幂等性,分布式限流
分布式系统中接口繁多,重试机制必不可少,这就需要对接口进行幂等性设计; 当网站流量激增时,我们可以通过分布式限流技术来降低服务器负载压力。
课程安排:
1. 基于唯一索引解决delete操作的幂等性问题
2. 基于乐观锁解决update的幂等性操作问题
3. 通过token机制解决insert的幂等操作问题
4. 分布式限流技术选型
5. 限流常用算法讲解
6. 基于Nginx的分布式限流 - IP限制
7. 基于Nginx的分布式限流 - 连接数限制
8. 基于Redis+Lua的分布式限流
9. 基于网关层实现分布式限流
10. 分布式限流落地
11. 分布式限流要注意的问题
第四阶段:SpringCloud G版微服务(18-25周)
第18周 微服务架构认知、服务治理-Eureka
本周首先带大家从架构师的视角认识微服务架构以及SpringCloud和微服务架构的关系, 然后开始学习和改造服务治理Eureka。
课程安排:
1. 微服务架构的利弊以及面临的挑战
2. 微服务的拆分规范,原则
3. 阿里新零售业务商品中心的微服务化过程
4. SpringCloud和微服务架构的关系
5. SpringCloud整体架构
6. 面对疯狂演进的版本,跟还是不跟?
7. 电商系统微服务化的构想
8. 服务治理技术选型Eureka VS Consul VS Nacos
9. 如何看待Eureka2
10. Eureka体系架构解析
11. 创建服务注册中心
12. 服务注册源码探秘
13. 服务发现,心跳监测与服务剔除,服务续约,服务自保,服务下线
14. 心跳检测和服务续约源码探秘
15. 双备份注册中心 + 架构心得
16. 电商系统用户模块集成Eureka
第19周 负载均衡-Ribbon、服务通信与调用-Feign
本周我们需要借助Ribbon组件提供的负载均衡功能缓解访问压力。同时为了改善编程体验,我们会学习服务间调用功能-Feign。
课程安排:
1. 负载均衡技术选型(客户端 vs 服务器端)
2. Ribbon体系架构解析
3. 为服务消费者添加负载均衡功能
4. 懒加载与饥饿加载
5. 负载均衡策略详解
6. 探究负载均衡策略源码
7. 深入了解LoadBalanced注解的底层机制
8. 没有银弹!如何针对具体业务采用合适的负载均衡策略
9. 电商系统用户模块统集成Ribbon
10. Ribbon可扩展性的研究-irule机制
11. 自定义轮询式负载均衡策略
12. Feign体系架构解析
13. 将Feign应用到服务消费者中
14. 深入了解EnableFeignClient注解的底层机制
15. 理想的Feign风格项目架构分享
16. 配置重试和超时策略
17. 深入了解FeignContract协议解析过程
18. 电商系统用户模块统集成Feign
第20周 服务容错-Hystrix
服务异常是生产环境中再正常不过的情况,轻则一行error log,重则引发服务雪崩,把上下游的服务集群一波团灭。本周我们就来学习如果使用Hystrix处理服务调用异常。
课程安排:
1. 服务容错的解决方案 (降级和熔断)
2. Hystrix体系架构解析(依赖隔离、服务降级、请求熔断)
3. 服务降级原理及常用解决方案(FailFast, Timeout和Request Cache)
4. Feign+Hystrix实现Fallback降级
5. Hystrix实现Request Cache降级
6. 多级降级方案(自定义降级处理类,二次降级)
7. 超时降级 - 规避与Ribbon共同作用时的坑
8. Hystrix框架降级方案的触发方式(源码品读)
9. 熔断器以及工作原理
10. Feign集成Hystrix熔断器
11. Hystrix熔断器参数的作用(源码品读)
12. 降级熔断的业务规划(规划主链路/业务与容灾策略)
13. 线程隔离 - 核心方案以及工作原理
14. 线程池 vs 信号量的优缺点比较
15. 聚合Hystrix监控信息 – Turbine和Hystrix Dashboard
16. 通过Turbine聚合Consumer信息
17. 电商系统用户模块集成Hystrix实现降级熔断
第21周 分布式配置中心-Config
在项目中一定经常遇到数不清的配置项和配置文件,管理起来十分头大,本周就带你一起玩转微服务下的配置管理组件-Config。
课程安排:
1. 配置中心在微服务中的应用
2. Config核心功能和体系架构
3. 了解直联式架构,搭建直连式的配置中心
4. 搭建配置中心Config-Server
5. 搭建Client端直连配置中心
6. 资源文件加载流程ResourceRepository源码分析
7. 如何在运行期动态刷新配置项
8. 单中心宕机的思考,如何保证配置中心的高可用化
9. 借助Eureka实现高可用性配置中心
10. 如何对大规模集群进行刷新?总线式架构展望
11. 对称性密钥进行加解密(保存私密信息)
12. 分布式配置中心的其他花式用法(环境配置项隔离/辅助服务降级/平滑灰度等)
13. 电商系统用户注册功能集成SCC
14. 视野拓展-阿里系的分布式配置中心
15. 视野拓展-配置中心在阿里新零售业务中的应用
第22周 消息总线-Bus、服务网关-Gateway
微服务架构中,少不了消息的传递和路由,本周我们就来学习一下消息总线-Bus和第二代服务网关-Gateway。
课程安排:
1. Bus体系架构解析
2. Bus的接入方式 (RabbitMQ、Kafka)
3. 配置中心改造为总线架构 - RabbitMQ
4. 源码解析-bus-refresh底层机制
5. 如何实现自动推送?Git WebHook
6. 架构思考-消息总线如何助攻其他业务场景
7. 网关组件选型Gateway vs Zuul
8. Gateway体系架构解析
9. Gateway路由功能详解(Route)
10. 利用Path断言实现url映射
11. 利用After断言实现定时秒杀场景
12. 自定义过滤器实现接口计时功能
13. Gateway过滤器机制源码解析
14. 如何进行权限认证 - 分布式Session的替代方案有哪些
15. 基于JWT实现用户鉴权
16. 架构思考-如何借助网关层对服务端各类异常做统一处理
17. 拓展-网关层的其他妙用 - 限流
18. 为电商系统添加服务网关
第23周 服务调用链追踪-Sleuth、消息驱动-Stream
排查线上异常是我们的日常任务,其中最重要的方式就是根据日志信息按图索骥摸排线索,本周我们学习Sleuth+Zipkin+ELK实现日志打标收集和搜索展示。之后拓展组件Stream。
课程安排:
1. 调用链追溯在微服务中的应用
2. Sleuth核心功能和体系架构解析
3. 调用链路数据模型 (Trace、Span、Annotation)
4. 整合Sleuth追踪调用链路
5. 解码解析-RequestHeader追踪调用链路的原理
6. Sleuth整合ELK实现日志检索
7. 电商项目用户模块集成Sleuth + Zipkin
8. 拓展-阿里新零售业务中商品发布的削峰策略
9. 源码解析-探秘Stream Binder作用机制
10. 基于发布订阅实现广播功能
11. 阿里新零售业务利用发布订阅实现商品信息刷新
12. Stream中的消费组和消费分区机制
13. 基于消费组实现轮询单播功能
14. Stream + MQ插件实现延迟消息、equeue操作
15. 架构思考-异常情况导致消息无法被消费怎么办?
16. 借助死信队列实现异常处理
17. 定制自定义异常逻辑
18. 电商项目引入Stream + MQ
第24周 微服务下Sentinel流量防控卫兵
本周会手把手带大家学习一个高并发流量防护的利器-Sentinel,通过对Sentinel的学习和实践,让大家有能力解决你项目中的流控,降级等问题。
课程安排:
1. Sentinel哨兵全景分析
2. Sentinel哨兵核心API详解
3. 源码解析-Sentinel哨兵核心主流程分析
4. Sentinel哨兵SpringAOP注解方式应用
5. Sentinel哨兵与主流框架的适配使用
6. Sentinel哨兵集群流控策与替代方案分享
7. Sentinel哨兵集成Apollo(携程的开源配置中心)
8. Apollo持久化规则扩展思路详解
9. Apollo配置文件解析与ApolloOpenApiClient创建
10. Apollo sentinel-dashboard扩展实现
11. Apollo 客户端集成sentinel-dashboard
第25周 服务治理的另一条路 - Dubbo
本周属于拓展学习周,主要以图文的方式为大家拓展讲解Dubbo相关知识,希望通过本章的学习, 大家可以对基于RPC协议的服务治理有一个深刻的认知。
课程安排:
1. RPC VS HTTP
2. Dubbo架构设计解析
3. Dubbo核心功能讲解
4. 构建Dubbo注册中心和Service Provider
5. RPC协议解析流程
6. 构建服务消费者
7. 容错策略,负载均衡
8. 基于Dubbo-Admin的服务治理
9. 源码解析-Dubbo调用链路解析
10. 拓展-阿里系王牌中间件 - HSF
第五阶段:Docker,K8S容器化(26-30周)
第26周 服务容器化-Docker
微服务架构改造后应用组件繁多,给服务部署带来了很大的挑战。本周我们就从热门技术Docker入手,解决服务部署难题。
课程安排:
1. 服务容器化优势和助力
2. 服务容器化技术演进之路
3. 容器技术选型Docker VS Cloud Foundry
4. Docker快速搭建,Docker整体架构解析
5. 容器生命周期管理
6. Dockerfile实战:如何站在巨人的肩膀上,实现快速部署
7. 如何实现容器间的网络访问和通信管理
8. 选择最适合你的容器镜像仓库
9. Docker生态圈:选型和优化
10. Docker落地实战,部署微服务
第27周 容器技术-Cloud Foundry
本周为大家讲解容器部署另一分支解决方案-Cloud Foundry, 从架构和功能介绍到容器生命周期管理、网络和数据服务;逐步向后续的容器编排延伸。
课程安排:
1. Cloud Foundry整体架构解析
2. Cloud Foundry环境搭建
3. Cloud Foundry常用命令实战,实现容器生命周期管理
4. Cloud Foundry网络管理(路由和访问控制)
5. 基于Cloud Foundry网络特性实现业务蓝绿发布
6. Cloud Foundry数据服务管理(关系型数据库/缓存/配置管理)
7. 如何实现数据持久层的高可用和业务连续性(架构思考)
8. Cloud Foundry容器应用和PaaS平台双重管理(Ops & Aps Manager)
9. Cloud Foundry混合容器云架构和实践
第28周 容器编排-Mesos+ Marathon
本周为大家提供容器编排第一套解决方案-Mesos+Marathon,助力大家搞定容器编排难题,让你的项目从应用架构向企业架构过渡。
课程安排:
1. Mesos+Marathon整体架构解析
2. Mesos+Marathon环境搭建和小试牛刀
3. Mesos资源管理原理剖析与实战
4. Mesos实现DCOS多类型负载综合管理
5. Marathon调度器原理剖析与实战(常驻服务生命周期管理)
6. Marathon应用隔离和依赖管理
7. 如何实现无单点、大集群容器编排管理
8. Mesos+Marathon落地实战,部署微服务
第29周 容器编排-K8S
本周我们一起来学习K8S容器编排。我们会以企业架构师的视野,重新审视容器化编排。
课程安排:
1. K8S整体架构及常用命令
2. K8S调度原理剖析与Pod生命周期管理
3. K8S控制器管理原理剖析与实战
4. K8S网络模型和服务访问管理
5. K8S服务发现与负载均衡原理剖析与实战
6. K8S系统分层架构和故障排除思路
7. K8S存储原理实战(数据卷和配置管理)
8. K8S认证授权原理剖析与实战(安全框架/RBAC)
9. K8S集群监控、快速故障排查和业务连续性保障
10. 如何实现大规模集群?10节点->100节点->1000节点
11. 全链路高可用架构升级
12. 知识扩展-如何基于容器编排工具实现CI/CD
13. K8S落地实战,部署微服务
第30周 容器弹性扩缩容架构思路
本周为大家分享容器弹性扩缩容整体架构思路。我们会采用Cloud Foundry实现资源决策性弹性扩缩容; 采用Mesos+Marathon实现负载驱动型动态扩缩容;采用K8S增值插件实现全自由扩缩容。
课程安排:
1. 资源管理、属性和配额管理
2. 有状态应用如何实现弹性伸缩和失效重置
3. 容器弹性扩缩容实现资源触发、简单决策
4. 容器弹性扩缩容实现负载触发、动态扩缩容
5. 容器弹性扩缩容实现更换轮子、自由扩缩容
第六阶段:Netty与JVM性能调优(31-40周)
第31周 高性能网络通信基石-Netty入门与提高
很多开源产品都使用了Netty作为底层的通信基础,比如Rocketmq、Dubbo等,在工作中,对数据通信、数据同步的场景也经常会使用到,所以这周我们先入门与提高Netty。
课程安排:
1. TCP通信基础
2. 架构师视角解读Netty技术选型与核心
3. 架构拆包粘包 - Netty TCP拆包粘包问题的处理
4. 架构序列化- Netty 序列化实战 Marshalling
5. 架构序列化 - Netty 序列化实战 Protobuf
6. 架构序列化 - Netty自定义协议栈实战
7. Netty HTTP协议栈
第32周 高性能网络通信基石-Netty最佳实战
本周我们将带大家提升Netty实战能力,并掌握Netty在实际开发中的最近实践。
课程安排:
1. Netty项目最佳实战- 数据可靠性通信场景分析与架构设计
2. Netty项目最佳实战- 数据结构定义与分析(@Spring 与 硬编码方式定义)
3. Netty项目最佳实战- Server端落地
4. Netty项目最佳实战- Client端落地
5. Netty项目最佳实战- 关于buffer的资源释放问题详解
6. 应用程序优化与测试细节点讲解
第33周 基于Netty打造自己的RPC通信框架-1
本周我们从0到1开发一个基于Netty的RPC通信框架,从整体架构设计、模块拆分,到技术落地,手把手带着小伙伴们感受架构设计与落地之美。
课程安排:
1. 实现一个最简单的RPC通信框架设计思路
2. 实现一个最简单的RPC通信框架落地
3. 架构设计与落地-RPC框架整体架构设计思路
4. 架构设计与落地-RPC整体框架API抽象与剥离
5. 架构设计与落地-RPC Client 客户端落地
6. 架构设计与落地-RPC Server 服务端落地
第34周 基于Netty打造自己的RPC通信框架-2
有了上一周的学习和积累,本周我们继续打造属于我们自己的RPC通信框架,并最后完成功能测试。
课程安排:
1. 架构设计与落地-RPC Proxy 代理
2. 架构设计与落地-RPC Codec编解码
3. 架构设计与落地- RpcCallback与RpcFuture,AQS实现
4. 架构设计与落地-RPC彩蛋功能点扩展之与Spring整合思路
5. 架构设计与落地-RPC彩蛋功能点扩展之注册中心整合思路
第35周 应用监控与调优-工具篇
本周我们先教大家如何迅速发现系统瓶颈,然后带大家掌握各种应用监控工具,从而为后面的监控与调优实战打好基础。
课程安排:
1. 开源的链路跟踪工具及对比
2. Skywalking监控Java应用
3. Skywalking监控数据库
4. Skywalking高可用
5. Skywalking存储
6. Spring Boot Actuator - 生产可用的应用监控工具
7. Prometheus - 监控工具
8. Grafana - 监控 + 告警工具
9. Tomcat Manager - Tomcat监控
10. psi-probe - Tomcat监控
11. 日志监控, 慢SQL监控
第36周 应用监控与调优-技巧与实战篇
本周我们继续学习应用监控与调优,首先我们会学习到各种应用调优常用技巧,之后进阶并发编程4板斧,并实战线程池调优,Tomcat调优的多种方式,最后综合实战,加深理解。
课程安排:
1. 应用调优常用技巧1 - 池化对象,本地异步化(3种方式)
2. 应用调优常用技巧2- 远程调用异步化(3种方式),缓存
3. 并发编程4板斧(线程封闭、降低锁粒度、锁粗化、无锁)
4. 应用调优实战1 - 定位应用层面性能问题的通用思路与步骤
5. 应用调优实战2 - 线程池调优
6. Tomcat调优1 - 原生Tomcat调优配置属性
7. Tomcat调优2 - Spring Boot内嵌式Tomcat调优配置属性
8. Tomcat调优3 - Tomcat调优手把手
9. 应用调优案例实战
第37周 JVM性能调优-工具篇
本周我们首先要学习JVM核心算法,工具和参数。通过本周的学习,我们基本上可以具备JVM调优所需的一切准备,为后续真正的实战打下坚实的基础。
课程安排:
1. 垃圾回收算法 - 复制, 标记清除,标记整理
2. 垃圾回收器 - Serial,Parallel,ParNew,CMS,G1,ZGC
3. 垃圾回收器 - 多款回收器如何配合
4. JVM监控工具 - jinfo, jps,jstat,jstack,jmap
5. JVM监控工具 - jconsole,jvisualvm,jmc,mat
6. GC日志分析工具 - GCEasy与GCPlot
7. 线程Dump日志分析工具 - FastThread
8. 堆Dump日志分析工具 - HeapHero
9. 常用JVM调优参数详解
第38周 JVM性能调优-实战篇
本周我们进入JVM调优实战,通过本周的实战学习,大家基本上可以解决工作中80%以上JVM相关的性能调优问题。
课程安排:
1. 调优实战1 - 如何确定最小堆内存?
2. 调优实战2 - 如何确定最大堆内存?
3. 调优实战3 - 死锁分析
4. 调优实战4 - 内存溢出问题解决方案(堆内存、Metadataspace区)
5. 调优实战4 - 内存溢出问题解决方案(栈溢出、直接内存溢出等)
6. 调优实战5 - 垃圾回收器调优(吞吐量、STW权衡)
7. 调优实战6 - 栈上分配、偏向锁等对系统调优的影响
8. 调优实战7 - 升级JDK对系统优化的影响
9. 调优实战8 - young GC频繁/Full GC频繁
10. 调优实战9 - 应用CPU占用过高问题分析
11. 调优实战10 - 应用无端变得奇慢,而且越来越慢
第39周 数据库监控与调优
本周我们来一起解决数据库监控与调优的问题,通过本周的学习,基本上可以搞定慢查询,索引等数据库重难点性能调优问题。
课程安排:
1. 数据库监控 - Prometheus
2. 慢查询日志
3. 索引分析与优化
4. 锁优化,Query Profiler
5. SQL优化工具
6. MySQL配置优化
7. 拓展分享:如何在合适的场景用合适的数据库?
8. 拓展分享:业务妥协会对系统调优造成怎样的影响?
第40周 Linux调优与架构调优
本周我们将学习Linux与架构优化,通过本周及前面几周的学习,相信大家已经对性能优化不再畏惧,反而会跃跃欲试,那就学以致用,尽早的在你的项目中用起来吧。
课程安排:
1. Linux常用监控调优命令
2. Linux监控可视化
3. 传统架构存在的问题
4. 去中心化:微服务,无状态 vs 有状态
5. 拓展分享:技术方案对业务优化的影响