课程简介:
课程目录:
第1章 课程介绍与学习指南
1-1 课前必读(不读错过一个亿)
1-2 课程导学 (14:21)
1-3 为什么要选择最新版本SpringBoot3和JDK17? (07:05)
1-4 在线demo网站演示 (17:31)
第2章 12306这个系统架构到底有多牛?
2-1 众多流行并发项目,为何选择12306? (07:34)
2-2 12306 是如何成为全球最忙碌的网站之一 (10:23)
2-3 如何保证不超卖、不少卖,还要能承受极高的并发? (16:01)
2-4 12306系统核心功能讲解 (04:51)
2-5 12306系统功能模块划分 (04:30)
2-6 12306整体系统架构设计 (06:12)
2-7 12306系统数据库表讲解 (10:49)
2-8 百万人同时抢1万张票,系统如何保证其正常及稳定性? (09:46)
第3章 最新版的SpringBoot3&JDK9~17新特性详解
3-1 JDK9新特性-jshell交互式工具(加片头) (04:56)
3-2 JDK9新特性-模块化开发 (11:27)
3-3 JDK10新特性-var局部变量推导 (04:16)
3-4 JDK11新特性-单文件程序 (02:57)
3-5 JDK11新特性-shebang脚本 (10:07)
3-6 JDK14新特性-文本块 (03:28)
3-7 JDK14新特性-instanceof增强 (03:07)
3-8 JDK14新特性-空指针提示 (05:11)
3-9 JDK16新特性-record类 (07:07)
3-10 JDK17新特性-sealed类 (09:01)
3-11 JDK17新特性-switch增强 (04:15)
3-12 SpringBoot3-AOT与JIT介绍 (05:35)
3-13 JIT在高并发场景中的生产问题分享 (08:45)
3-14 SpringBoot3-GraalVM代替JDK实现AOT (19:59)
第4章 新版Spring Cloud Alibaba与Springbooot搭建后端架构
4-1 手把手快速完成微服务架构的搭建(加片头) (06:24)
4-2 项目初始化配置 (08:25)
4-3 实现代码关联Git远程仓库 (16:00)
4-4 新增member会员模块 (10:06)
4-5 实现日志的相关配置 (17:16)
4-6 使用HTTP Client完成测试接口 (05:59)
4-7 增加AOP打印请求参数和返回结果 (15:02)
4-8 详解项目中增加通用模块 (10:57)
4-9 详解项目中增加网关模块 (15:00)
4-10 详解本地数据库的准备工作 (08:36)
4-11 详解阿里云RDS的准备工作 (22:57)
4-12 使用IDEA配置数据库连接 (11:49)
4-13 集成Mybatis持久层框架 (21:57)
4-14 集成Mybatis官方生成器 (20:08)
4-15 完成会员注册接口的开发 (13:00)
4-16 封装请求参数和返回结果 (13:10)
4-17 为项目增加统一异常处理 (04:56)
4-18 使用自定义异常处理异常业务 (16:33)
4-19 集成校验框架Validation (09:17)
4-20 详解雪花算法 (12:37)
第5章 使用Vue3 + Vue CLI 实现系统前端模块的搭建
5-1 本章介绍(加片头) (04:36)
5-2 本地环境准备 (08:12)
5-3 手把手创建基于Vue CLI的web模块 (25:28)
5-4 web模块集成Ant Design Vue (16:55)
5-5 短信验证码登录流程讲解 (13:50)
5-6 注册登录二合一界面开发 (28:34)
5-7 发送短信验证码接口开发 (20:40)
5-8 短信验证码登录接口开发 (21:24)
5-9 集成Axios完成登录功能 (26:54)
5-10 增加Axios拦截器配置 (06:27)
5-11 Vue CLI多环境配置 (09:56)
5-12 增加web控台主页 (10:42)
5-13 制作Vue3公共组件 (12:37)
第6章 实现JWT单点登录功能
6-1 本章介绍 (03:54)
6-2 介绍两种单点登录方案设计 (05:58)
6-3 JWT单点登录原理与存在的问题及解决方案讲解 (11:57)
6-4 详解生成JWT单点登录token (14:09)
6-5 使用vuex保存登录信息 (12:47)
6-6 vuex配合h5的session解决浏览器刷新问题 (09:15)
6-7 演示gateway拦截器的使用 (09:04)
6-8 为gateway增加登录校验拦截器 (14:21)
6-9 为axios请求增加统一拦截器 (11:44)
6-10 为路由页面增加登录拦截 (08:52)
第7章 12306系统会员基础功能的实现
7-1 本章介绍 (02:24)
7-2 详解乘车人表的设计 (10:57)
7-3 乘车人新增接口开发 (16:12)
7-4 使用HttpClient保存登录信息 (07:37)
7-5 使用线程本地变量存储会员信息 (20:36)
7-6 前端二级路由页面开发 (19:23)
7-7 乘车人新增界面开发 (10:07)
7-8 乘车人列表查询接口开发 (17:16)
7-9 集成PageHelper实现后端分页(一) (09:41)
7-10 集成PageHelper实现后端分页(二) (14:09)
7-11 乘车人列表查询界面开发(一) (14:21)
7-12 乘车人列表查询界面开发(二) (15:03)
7-13 解决Long类型精度丢失的问题 (07:20)
7-14 乘车人编辑接口开发 (07:16)
7-15 乘车人编辑界面开发 (15:58)
7-16 乘车人删除接口开发 (04:41)
7-17 乘车人删除功能开发 (03:02)
7-18 前端枚举展示的解决方案介绍 (13:01)
第8章 自制前后端代码生成器提高开发效率
8-1 本章介绍 (02:46)
8-2 更换RDS数据库 (12:18)
8-3 剖析代码生成器的底层原理 (18:03)
8-4 集成DOM4j读取xml (12:40)
8-5 详解Service生成器 (19:03)
8-6 详解Controller生成器 (09:17)
8-7 制作DBUtil读取表字段信息 (25:04)
8-8 详解实体类生成器 (20:41)
8-9 按模块生成后端代码 (16:38)
8-10 详解vue界面生成器 (18:03)
8-11 详解前端枚举代码生成器 (12:09)
第9章 利用代码生成器快速实现火车基础数据的维护
9-1 本章介绍 (02:23)
9-2 更换远程代码仓库 (05:06)
9-3 项目中增加admin控台模块 (13:45)
9-4 项目中增加business业务模块 (08:12)
9-5 为business模块配置持久层生成器 (08:51)
9-6 快速生成车站基础数据 (14:59)
9-7 快速生成火车基础数据管理功能 (19:03)
9-8 快速生成火车车站基础数据管理功能 (08:00)
9-9 快速生成火车车厢基础数据管理功能 (04:57)
9-10 快速生成火车座位基础数据管理功能 (11:08)
9-11 使用pinyin-pro将汉字转成拼音 (10:38)
9-12 车次表单增加车站下拉选择 (15:54)
9-13 制作车次下拉框组件(一) (16:21)
9-14 制作车次下拉框组件(二) (09:58)
9-15 制作车站下拉框组件 (12:45)
9-16 为基础数据增加车次查询条件 (19:42)
9-17 实现按车次生成车座功能(一) (14:42)
9-18 实现按车次生成车座功能(二) (14:13)
9-19 完善车次&车厢&座位管理功能 (23:51)
9-20 为车次&车厢&车站增加存在性校验 (26:23)
第10章 使用调度框架quartz,为12306系统增加定时调度功能
10-1 本章介绍 (04:51)
10-2 项目中增加batch定时调度模块 (07:00)
10-3 为batch模块配置持久层生成器 (08:16)
10-4 演示Springboot自带的定时任务 (08:51)
10-5 定时调度模块集成quartz (08:39)
10-6 关于调度任务的并发执行 (03:36)
10-7 使用数据库配置quartz调度任务 (15:14)
10-8 通过控台界面操作定时任务 (18:19)
10-9 增加任务手工补偿功能 (04:08)
10-10 演示多节点场景中quartz的调度情况 (07:42)
第11章 通过火车基础数据生成每日火车数据
11-1 本章介绍 (03:49)
11-2 快速生成每日车次数据管理功能 (16:34)
11-3 完善每日车次管理页面功能 (23:16)
11-4 快速生成每日车站数据管理功能 (09:27)
11-5 快速生成每日车厢数据管理功能 (14:28)
11-6 快速生成每日座位数据管理功能 (17:29)
11-7 增加生成每日车次定时任务 (11:00)
11-8 集成OpenFeign实现服务间调用 (19:42)
11-9 增加生成每日车次功能 (26:41)
11-10 增加生成每日车站功能 (15:54)
11-11 增加生成每日车厢功能 (06:42)
11-12 增加生成每日座位功能 (10:51)
11-13 增加手动生成某日车次数据功能 (11:08)
第12章 基本的车票预定功能开发
12-1 本章介绍 (04:28)
12-2 增加余票信息表以提高余票查询效率 (18:55)
12-3 生成车次时初始化余票信息 (23:17)
12-4 生成车次时初始化各种座位的余票数量 (25:27)
12-5 为余票信息页面增加查询条件 (11:55)
12-6 为会员端增余票查询功能 (21:07)
12-7 增加订票页面并实现车次信息传递 (26:10)
12-8 订票页面勾选乘客并显示购票列表 (27:17)
12-9 分解选座购票功能的前后端逻辑 (20:32)
12-10 订票页面增加选座效果 (35:38)
12-11 增加确认订单表并生成前后端代码 (13:00)
12-12 后端增加确认下单购票接口 (18:44)
12-13 确认下单接口数据初始化 (15:08)
12-14 预扣减库存并判断余票是否足够 (13:44)
12-15 计算多个选座之间的偏移值 (23:23)
12-16 循环获取每个车厢的每个座位 (22:28)
12-17 根据座位销售详情判断本次是否可选(一) (14:47)
12-18 根据座位销售详情判断本次是否可选(二) (19:27)
12-19 完成有选座的挑座位逻辑 (24:30)
12-20 保存最终的选座结果 (17:09)
12-21 选座成功后更新各座位的销售详情 (11:31)
12-22 选座成功后批量扣减影响到的多个库存 (30:18)
12-23 选座成功后会会员增加车票记录 (19:24)
12-24 选座成功后更新确认订单状态为成功 (05:12)
第13章 集成注册中心与配置中心组件Nacos(动态修改线上的配置)
13-1 本章介绍 (06:19)
13-2 Nacos官网介绍 (07:16)
13-3 Nacos快速开始 (14:27)
13-4 Nacos配置中心演示 (16:13)
13-5 Nacos多环境配置演示 (11:37)
13-6 Nacos利用命名空间做项目隔离 (06:36)
13-7 Nacos注册中心演示 (04:11)
13-8 配置Gateway+Nacos支持应用名路由转发 (13:49)
13-9 配置Feign+Nacos支持应用名远程调用 (03:55)
13-10 Nacos挂了怎么办 (03:05)
第14章 高性能余票查询的实现(前端缓存&本地缓存&分布式缓存)
14-1 本章介绍 (04:34)
14-2 详解Mybatis的一级缓存 (10:13)
14-3 详解Mybatis的二级缓存 (12:37)
14-4 详解SpringBoot内置缓存 (18:29)
14-5 SpringBoot整合redis缓存 (13:13)
14-6 详解缓存击穿与解决方案 (05:56)
14-7 详解缓存穿透与解决方案 (09:49)
14-8 详解缓存雪崩与解决方案 (06:08)
14-9 缓存在高并发场景中的生产问题分享 (08:10)
14-10 前端缓存的使用 (06:36)
第15章 集成分布式事务组件Seata(解决分布式系统中的数据一致性问题)
15-1 本章介绍 (01:54)
15-2 初识Seata (08:12)
15-3 讲解Seata分布式事务的原理 (08:28)
15-4 讲解Seata分布式事务的四种模式 (09:59)
15-5 Seata分布式事务初体验 (27:58)
15-6 Seata Server配置Nacos (20:19)
15-7 Seata Client配置Nacos (10:46)
15-8 Seata和Mysql存储演示 (04:47)
第16章 高并发抢票时,利用各种锁解决车票超卖问题(JDK锁&分布式锁&看门狗设计&红锁)
16-1 本章介绍 (02:12)
16-2 JMeter初体验 (10:01)
16-3 超卖演示&使用JMeter对购票功能进行压测 (13:22)
16-4 使用synchronized是否能解决库存超卖? (09:39)
16-5 使用Redis分布式锁是否能解决库存超卖? (26:31)
16-6 使用Redisson看门狗解决锁超时的问题 (17:43)
16-7 介绍Redis红锁 (16:35)
16-8 本章代码优化 (08:46)
16-9 JMeter线程组之间传递token变量 (14:04)
第17章 高并发抢票时,使用Sentinal组件进行请求限流降级(过滤90%的无效请求)
17-1 本章介绍 (03:18)
17-2 常见的限流算法 (05:37)
17-3 初识Sentinel (07:14)
17-4 Sentinel限流初体验 (15:31)
17-5 使用Sentinel控台监控流量 (10:22)
17-6 使用Sentinel配置限流 (16:37)
17-7 Sentinel+Nacos实现限流规则持久化 (09:26)
17-8 Sentinel限流不同的流控效果讲解 – Warm Up&排队等待 (14:21)
17-9 Sentinel限流不同的流控模式讲解 – 关联&链路 (11:36)
17-10 Sentinel+Feign熔段初体验 (13:45)
17-11 Sentinel+Feign熔断后的降级处理 (07:36)
17-12 Sentinel熔断规则配置演示 (11:25)
第18章 高并发抢票时,防止机器人刷票的令牌大闸,可减轻服务器的压力(防刷+限流)
18-1 本章介绍 (03:41)
18-2 增加秒杀令牌表用以维护令牌信息 (07:32)
18-3 初始化车次信息时初始化秒杀令牌信息 (09:58)
18-4 增加校验秒杀令牌功能 (11:20)
18-5 使用令牌锁防止机器人抢票 (05:30)
18-6 使用缓存加速令牌锁功能 (19:57)
18-7 增加验证码削弱瞬时高峰并防机器人刷票 (20:58)
18-8 增加第一层验证码削弱瞬时高峰 (07:16)
第19章 利用流行的MQ组件对请求做削峰处理,解决吞吐量问题(实现最短时间内给用户反馈)
19-1 本章介绍 (03:29)
19-2 购票时序图演进 (10:22)
19-3 初始RocketMQ (09:13)
19-4 RocketMQ初体验 (08:56)
19-5 RocketMQ控制台的使用 (07:32)
19-6 使用RocketMQ将购票流程一分为二 (20:24)
19-7 完成MQ消费里的购票功能 (18:42)
19-8 为同转异增加logId,方便日志跟踪 (03:58)
19-9 增加排队功能思路讲解 (07:19)
19-10 完成排队出票功能(一) (13:47)
19-11 完成排队出票功能(二) (13:15)
19-12 增加轮询购票结果功能 (25:40)
第20章 压力测试-高并发优化前后的性能对比(单机性能提升25倍左右)
20-1 本章介绍 (02:09)
20-2 压力测试相关概念讲解 (04:53)
20-3 吞吐量压测 (07:37)
20-4 旧代码吞吐量压测 (05:34)
20-5 修改JVM参数再次压测 (07:14)
20-6 最高并发数探测 (07:34)
20-7 使用异步线程代替RocketMQ (08:05)
第21章 企业级项目上云(阿里云部署)
21-1 本章介绍 (05:49)
21-2 阿里云部署方案介绍 (05:24)
21-3 阿里云RDS购买与配置 (05:13)
21-4 阿里云Redis购买 (03:17)
21-5 阿里云ECS购买与配置 (08:03)
21-6 本地登录阿里云ECS (02:38)
21-7 安装JDK (02:18)
21-8 安装nacos (05:34)
21-9 SpringBoot应用的多环境打包 (16:54)
21-10 SpringBoot应用的生产发布 (04:46)
21-11 Vue CLI模块的生产打包 (03:38)
21-12 Vue CLI模块的生产发布 (16:44)
21-13 修复服务端访问失败的问题 (08:21)
21-14 多节点的配置,保证服务高可用(一) (12:00)
21-15 多节点的配置,保证服务高可用(二) (12:02)
21-16 cdn配置介绍 (09:31)
21-17 httpss配置介绍 (04:51)
第22章 项目优化
22-1 本章介绍 (09:40)
22-2 购票页面增加取消排队的功能 (06:45)
22-3 余票查询页面增加显示车站信息 (06:18)
22-4 购票页面增加发起多人排队功能 (06:01)
22-5 增加座位销售图(一) (13:11)
22-6 增加座位销售图(二) (13:40)
22-7 只允许购买两周内的车次 (07:42)
22-8 增加乘客初始化定时任务(为了线上体验) (05:29)
22-9 界面显示优化 (03:27)
第23章 课程总结
23-1 课程总结 (07:43)
网盘截图: