Springboot3+微服务实战12306高性能售票系统

明星讲师“”全新力作,带你学习各种场景的解决方案

慕课网明星讲师“”全新力作:一套市面稀缺的,手把手教你完整落地“,高可用,高性能” 整体解决方案实战课。课程以12306售票系统驱动教学,融合老师多年超大型项目与实战经验,带你从架构设计到具体场景方案落地,真正驾驭超高并发场景下的各种疑难问题,成为高薪抢手人才。

新版Springboot3.0打造能落地的高并发仿12306售票系统【完结23章】 新版Springboot3.0打造能落地的高并发仿12306售票系统【完结23章】 新版Springboot3.0打造能落地的高并发仿12306售票系统【完结23章】 新版Springboot3.0打造能落地的高并发仿12306售票系统【完结23章】

资源截图

新版Springboot3.0打造能落地的高并发仿12306售票系统【完结23章】

课程目录

 

第1章 课程介绍与学习指南4 节39分钟

本章主要对课程做整体介绍,其中包括:课程要解决的问题、课程特色和亮点、课程内容安排、学完大家的收获,以及在学习方法上提出的建议与指导。

视频:1-2 课程导学
视频:1-3 为什么要选择最新版本SpringBoot3和JDK17?
视频:1-4 在线demo网站演示

第2章 12306这个系统架构到底有多牛?8 节71分钟

本章主要对课程为什么选择12306课程作为实战项目,以及该项目具备哪些亮点及优势做全面分析介绍,从而让大家了解课程设计的初衷以及要达到的目的。
视频:2-1 众多流行并发项目,为何选择12306?
视频:2-2 12306 是如何成为全球最忙碌的网站之一
视频:2-3 如何保证不超卖、不少卖,还要能承受极高的并发?
视频:2-4 12306系统核心功能讲解
视频:2-5 12306系统功能模块划分
视频:2-6 12306整体系统架构设计
视频:2-7 12306系统数据库表讲解
视频:2-8 百万人同时抢1万张票,系统如何保证其正常及稳定性?

第3章 最新版的SpringBoot3&JDK9~17新特性详解14 节101分钟

目前市面上大多数Java项目都还在用JDK1.8,导致很多程序员也没用过高版本JDK,本章将带大家从JDK9到JDK17学习每个版本的一些重要的特性,以及最新发布的SpringBoot3的新特性,并在项目开发中全面应用。
视频:3-1 JDK9新特性-jshell交互式工具(加片头)
视频:3-2 JDK9新特性-模块化开发
视频:3-3 JDK10新特性-var局部变量推导
视频:3-4 JDK11新特性-单文件程序
视频:3-5 JDK11新特性-shebang脚本
视频:3-6 JDK14新特性-文本块
视频:3-7 JDK14新特性-instanceof增强
视频:3-8 JDK14新特性-空指针提示
视频:3-9 JDK16新特性-record类
视频:3-10 JDK17新特性-sealed类
视频:3-11 JDK17新特性-switch增强
视频:3-12 SpringBoot3-AOT与JIT介绍
视频:3-13 JIT在高并发场景中的生产问题分享
视频:3-14 SpringBoot3-GraalVM代替JDK实现AOT

第4章 新版Spring Cloud Alibaba与Springbooot搭建后端架构20 节261分钟

本章主要学习微服务项目架构的搭建,使用Maven搭建Spring Cloud Alibaba微服务架构,学习微服务核心组件:注册中心Nacos和路由Gateway,完成项目的工程配置,如:Git, Maven, 热部署、编码等。
视频:4-1 手把手快速完成微服务架构的搭建(加片头)
视频:4-2 项目初始化配置
视频:4-3 实现代码关联Git远程仓库
视频:4-4 新增member会员模块
视频:4-5 实现日志的相关配置
视频:4-6 使用HTTP Client完成测试接口
视频:4-7 增加AOP打印请求参数和返回结果
视频:4-8 详解项目中增加通用模块
视频:4-9 详解项目中增加网关模块
视频:4-10 详解本地数据库的准备工作
视频:4-11 详解阿里云RDS的准备工作
视频:4-12 使用IDEA配置数据库连接
视频:4-13 集成Mybatis持久层框架
视频:4-14 集成Mybatis官方生成器
视频:4-15 完成会员注册接口的开发
视频:4-16 封装请求参数和返回结果
视频:4-17 为项目增加统一异常处理
视频:4-18 使用自定义异常处理异常业务
视频:4-19 集成校验框架Validation
视频:4-20 详解雪花算法

第5章 使用Vue3 + Vue CLI 实现系统前端模块的搭建13 节207分钟

本章将完成项目前端模块搭建,创建Vue CLI 项目Web,集成支持Vue3的UI组件库Ant Design Vue,完成网站页面基本布局,集成Vue-Router路由、Axios等组件。
视频:5-1 本章介绍(加片头)
视频:5-2 本地环境准备
视频:5-3 手把手创建基于Vue CLI的web模块
视频:5-4 web模块集成Ant Design Vue
视频:5-5 短信验证码登录流程讲解
视频:5-6 注册登录二合一界面开发
视频:5-7 发送短信验证码接口开发
视频:5-8 短信验证码登录接口开发
视频:5-9 集成Axios完成登录功能
视频:5-10 增加Axios拦截器配置
视频:5-11 Vue CLI多环境配置
视频:5-12 增加web控台主页
视频:5-13 制作Vue3公共组件

第6章 实现JWT单点登录功能10 节103分钟

单点登录是企业项目中必有的一个功能。本章介绍两种常见的单点登录信息,一种是redis+token的方案,一种是jwt方案,都是项目中常用的,课程中使用的是jwt方案来实际单点登录功能。
视频:6-1 本章介绍
视频:6-2 介绍两种单点登录方案设计
视频:6-3 JWT单点登录原理与存在的问题及解决方案讲解
视频:6-4 详解生成JWT单点登录token
视频:6-5 使用vuex保存登录信息
视频:6-6 vuex配合h5的session解决浏览器刷新问题
视频:6-7 演示gateway拦截器的使用
视频:6-8 为gateway增加登录校验拦截器
视频:6-9 为axios请求增加统一拦截器
视频:6-10 为路由页面增加登录拦截

第7章 12306系统会员基础功能的实现18 节210分钟

本章将带领大家完成会员模块的相关功能,其中包括会员注册、登录,乘车人管理等,详细讲解单点登录,以及使用Gateway增加登录校验,对会员业务功能进行统一做异常处理,并对乘车人相关接口、界面进行开发,为后续购票功能做准备。...
视频:7-1 本章介绍
视频:7-2 详解乘车人表的设计
视频:7-3 乘车人新增接口开发
视频:7-4 使用HttpClient保存登录信息
视频:7-5 使用线程本地变量存储会员信息
视频:7-6 前端二级路由页面开发
视频:7-7 乘车人新增界面开发
视频:7-8 乘车人列表查询接口开发
视频:7-9 集成PageHelper实现后端分页(一)
视频:7-10 集成PageHelper实现后端分页(二)
视频:7-11 乘车人列表查询界面开发(一)
视频:7-12 乘车人列表查询界面开发(二)
视频:7-13 解决Long类型精度丢失的问题
视频:7-14 乘车人编辑接口开发
视频:7-15 乘车人编辑界面开发
视频:7-16 乘车人删除接口开发
视频:7-17 乘车人删除功能开发
视频:7-18 前端枚举展示的解决方案介绍

第8章 自制前后端代码生成器提高开发效率11 节167分钟

本章将演示代码生成器的制作,学习模板引擎freemarker的使用。通过代码生成器可以快速生成dto、service、controller和vue界面代码,再配合上mybatis generator,可以快速完成单表的增删改查管理功能,极大的提高开发效率。另外,本章的知识也可应用于静态页面生成、导出复杂excel等涉及文件生成的场景。...
视频:8-1 本章介绍
视频:8-2 更换
视频:8-3 剖析代码生成器的底层原理
视频:8-4 集成DOM4j读取xml
视频:8-5 详解Service生成器
视频:8-6 详解Controller生成器
视频:8-7 制作DBUtil读取表字段信息
视频:8-8 详解实体类生成器
视频:8-9 按模块生成后端代码
视频:8-10 详解vue界面生成器
视频:8-11 详解前端枚举代码生成器

第9章 利用代码生成器快速实现火车基础数据的维护20 节261分钟

本章将带大家开发车次信息管理功能,以及车次、车厢筛选的相关接口的开发,完善车站、车厢管理、座位管理等界面的功能,利用代码生成器,可快速完成多张表的增删改查功能。
视频:9-1 本章介绍
视频:9-2 更换远程代码仓库
视频:9-3 项目中增加admin控台模块
视频:9-4 项目中增加business业务模块
视频:9-5 为business模块配置持久层生成器
视频:9-6 快速生成车站基础数据
视频:9-7 快速生成火车基础数据管理功能
视频:9-8 快速生成火车车站基础数据管理功能
视频:9-9 快速生成火车车厢基础数据管理功能
视频:9-10 快速生成火车座位基础数据管理功能
视频:9-11 使用pinyin-pro将汉字转成拼音
视频:9-12 车次表单增加车站下拉选择
视频:9-13 制作车次下拉框组件(一)
视频:9-14 制作车次下拉框组件(二)
视频:9-15 制作车站下拉框组件
视频:9-16 为基础数据增加车次查询条件
视频:9-17 实现按车次生成车座功能(一)
视频:9-18 实现按车次生成车座功能(二)
视频:9-19 完善车次&车厢&座位管理功能
视频:9-20 为车次&车厢&车站增加存在性校验

第10章 使用调度框架quartz,为12306系统增加定时调度功能10 节87分钟

定时调度模块在微服务系统中是非常常见,也是非常重要的一个模块,通常一些逻辑复杂,实时性不高的功能会放到定时调度模块中执行。本章将对调度框架quartz及其异步线程组合做详细讲解。
视频:10-1 本章介绍
视频:10-2 项目中增加batch定时调度模块
视频:10-3 为batch模块配置持久层生成器
视频:10-4 演示Springboot自带的定时任务
视频:10-5 定时调度模块集成quartz
视频:10-6 关于调度任务的并发执行
视频:10-7 使用数据库配置quartz调度任务
视频:10-8 通过控台界面操作定时任务
视频:10-9 增加任务手工补偿功能
视频:10-10 演示多节点场景中quartz的调度情况

第11章 通过火车基础数据生成每日火车数据13 节188分钟

本章介绍利用上一章知识,制作定时任务,定时生成每日车次信息,包含车次、车站、车箱、座位,同时也包括余票信息,为后续余票查询和售票功能做准备。当定时任务异常时,使用手动生成车次信息作为补偿的实现。
视频:11-1 本章介绍
视频:11-2 快速生成每日车次数据管理功能
视频:11-3 完善每日车次管理页面功能
视频:11-4 快速生成每日车站数据管理功能
视频:11-5 快速生成每日车厢数据管理功能
视频:11-6 快速生成每日座位数据管理功能
视频:11-7 增加生成每日车次定时任务
视频:11-8 集成OpenFeign实现服务间调用
视频:11-9 增加生成每日车次功能
视频:11-10 增加生成每日车站功能
视频:11-11 增加生成每日车厢功能
视频:11-12 增加生成每日座位功能
视频:11-13 增加手动生成某日车次数据功能

第12章 基本的车票预定功能开发24 节464分钟

本章完成余票查询与购票功能,先不考虑高并发,优先完成主功能逻辑,为后续高并发场景做准备,学习服务间调用组件Feign的使用。
视频:12-1 本章介绍
视频:12-2 增加余票信息表以提高余票查询效率
视频:12-3 生成车次时初始化余票信息
视频:12-4 生成车次时初始化各种座位的余票数量
视频:12-5 为余票信息页面增加查询条件
视频:12-6 为会员端增余票查询功能
视频:12-7 增加订票页面并实现车次信息传递
视频:12-8 订票页面勾选乘客并显示购票列表
视频:12-9 分解选座购票功能的前后端逻辑
视频:12-10 订票页面增加选座效果
视频:12-11 增加确认订单表并生成前后端代码
视频:12-12 后端增加确认下单购票接口
视频:12-13 确认下单接口数据初始化
视频:12-14 预扣减库存并判断余票是否足够
视频:12-15 计算多个选座之间的偏移值
视频:12-16 循环获取每个车厢的每个座位
视频:12-17 根据座位销售详情判断本次是否可选(一)
视频:12-18 根据座位销售详情判断本次是否可选(二)
视频:12-19 完成有选座的挑座位逻辑
视频:12-20 保存最终的选座结果
视频:12-21 选座成功后更新各座位的销售详情
视频:12-22 选座成功后批量扣减影响到的多个库存
视频:12-23 选座成功后会会员增加车票记录
视频:12-24 选座成功后更新确认订单状态为成功

第13章 集成与配置中心组件Nacos(动态修改线上的配置)10 节88分钟

本章介绍Spring Cloud Alibaba的核心组件之一:Nacos,用作和配置中心。通过注册中心,可以查看所有的应用列表,机器数、健康数等信息;通过配置中心,可以动态的修改应用配置,无需重启应用,实时生效。
视频:13-1 本章介绍
视频:13-2 Nacos官网介绍
视频:13-3 Nacos快速开始
视频:13-4 Nacos配置中心演示
视频:13-5 Nacos多环境配置演示
视频:13-6 Nacos利用命名空间做项目隔离
视频:13-7 Nacos注册中心演示
视频:13-8 配置Gateway+Nacos支持应用名路由转发
视频:13-9 配置Feign+Nacos支持应用名远程调用
视频:13-10 Nacos挂了怎么办

第14章 的实现(前端缓存&本地缓存&分布式缓存)10 节96分钟

本章主要介绍在高并发场景中,如何实现高性能的余票查询,学习缓存技术,并对缓存常见问题进行讲解,如击穿、穿透、雪崩等,解决如何增加更新余票的定时任务及余票缓存初始化等问题。同时讲解前端缓存、本地缓存、持久层一级/二级缓存、分布式缓存等。...
视频:14-1 本章介绍
视频:14-2 详解Mybatis的一级缓存
视频:14-3 详解Mybatis的二级缓存
视频:14-4 详解SpringBoot内置缓存
视频:14-5 SpringBoot整合redis缓存
视频:14-6 详解缓存击穿与解决方案
视频:14-7 详解缓存穿透与解决方案
视频:14-8 详解缓存雪崩与解决方案
视频:14-9 缓存在高并发场景中的生产问题分享
视频:14-10 前端缓存的使用

第15章 集成分布式事务组件Seata(解决分布式系统中的数据一致性问题)8 节93分钟

在微服务架构中,一个功能会同时操作多个应用,传统的事务无法保证多个库之间的数据一致性,从而需要做很多额外的补偿动作和分支判断,有了Seata之后,可以很方便的开启分布式事务,保证数据最终一致性。
视频:15-1 本章介绍
视频:15-2 初识Seata
视频:15-3 讲解Seata分布式事务的原理
视频:15-4 讲解Seata分布式事务的四种模式
视频:15-5 Seata分布式事务初体验
视频:15-6 Seata Server配置Nacos
视频:15-7 Seata Client配置Nacos
视频:15-8 Seata和Mysql存储演示

第16章 高并发抢票时,利用各种锁解决车票超卖问题(JDK锁&分布式锁&看门狗设计&红锁)9 节119分钟

超卖问题在高并发场景中非常常见的,本章将讲解如何利用各种锁防止超卖,重点学习Redis分布式锁,解决如何实现分布式锁加过期时间与原子性加锁等问题。
视频:16-1 本章介绍
视频:16-2 JMeter初体验
视频:16-3 超卖演示&使用JMeter对购票功能进行压测
视频:16-4 使用synchronized是否能解决库存超卖?
视频:16-5 使用Redis分布式锁是否能解决库存超卖?
视频:16-6 使用Redisson看门狗解决锁超时的问题
视频:16-7 介绍Redis红锁
视频:16-8 本章代码优化
视频:16-9 JMeter线程组之间传递token变量

第17章 高并发抢票时,使用Sentinal组件进行请求限流降级(过滤90%的无效请求)12 节127分钟

本章学习常见的限流手段,重点学习Sentinal的使用,在高并发中,短时间内会有大量请求进来,但并不是所有的请求都能买到票,所以我们需要对请求做限流,以减轻服务器无谓的请求。
视频:17-1 本章介绍
视频:17-2 常见的限流算法
视频:17-3 初识Sentinel
视频:17-4 Sentinel限流初体验
视频:17-5 使用Sentinel控台监控流量
视频:17-6 使用Sentinel配置限流
视频:17-7 Sentinel+Nacos实现限流规则持久化
视频:17-8 Sentinel限流不同的流控效果讲解 - Warm Up&排队等待
视频:17-9 Sentinel限流不同的流控模式讲解 - 关联&链路
视频:17-10 Sentinel+Feign熔段初体验
视频:17-11 Sentinel+Feign熔断后的降级处理
视频:17-12 Sentinel熔断规则配置演示

第18章 高并发抢票时,防止机器人刷票的令牌大闸,可减轻服务器的压力(防刷+限流)8 节87分钟

本章主要讲解令牌大闸的使用,进一步减轻服务器压力,对令牌桶与令牌大闸及如何增加通用秒杀令牌大闸做详细介绍,实现如何为令牌接口增加防机器人刷票的功能,以及如何为令牌接口设置限流等。
视频:18-1 本章介绍
视频:18-2 增加秒杀令牌表用以维护令牌信息
视频:18-3 初始化车次信息时初始化秒杀令牌信息
视频:18-4 增加校验秒杀令牌功能
视频:18-5 使用令牌锁防止机器人抢票
视频:18-6 使用缓存加速令牌锁功能
视频:18-7 增加验证码削弱瞬时高峰并防机器人刷票
视频:18-8 增加第一层验证码削弱瞬时高峰

第19章 利用流行的MQ组件对请求做削峰处理,解决吞吐量问题(实现最短时间内给用户反馈)12 节143分钟

在高并发中,除了解决超卖问题,还要解决吞吐量问题,本章主要利用MQ对请求做削峰处理,并引入引入排队机制,在最短的时间内,给用户以反馈。
视频:19-1 本章介绍
视频:19-2 购票时序图演进
视频:19-3 初始RocketMQ
视频:19-4 RocketMQ初体验
视频:19-5 RocketMQ控制台的使用
视频:19-6 使用RocketMQ将购票流程一分为二
视频:19-7 完成MQ消费里的购票功能
视频:19-8 为同转异增加logId,方便日志跟踪
视频:19-9 增加排队功能思路讲解
视频:19-10 完成排队出票功能(一)
视频:19-11 完成排队出票功能(二)
视频:19-12 增加轮询购票结果功能

第20章 压力测试-高并发优化前后的性能对比(单机性能提升25倍左右)7 节44分钟

本章介绍介绍压测相关的知识,并使用JMeter对代码进行压测,对比高并发优化前后的性能,从结果看出,不管从吞吐量还是并发量来说,单机性能都提升了25倍左右。
视频:20-1 本章介绍
视频:20-2 压力测试相关概念讲解
视频:20-3 吞吐量压测
视频:20-4 旧代码吞吐量压测
视频:20-5 修改JVM参数再次压测
视频:20-6 最高并发数探测
视频:20-7 使用异步线程代替RocketMQ

第21章 企业级项目上云(阿里云部署)17 节128分钟

本章主要介绍如果将写好的项目部署到生产环境,供用户访问,包括前后端发布,及微服务器nacos, sentinal等组件的发布。
视频:21-1 本章介绍
视频:21-2 阿里云部署方案介绍
视频:21-3 阿里云RDS购买与配置
视频:21-4 阿里云Redis购买
视频:21-5 阿里云ECS购买与配置
视频:21-6 本地登录阿里云ECS
视频:21-7 安装JDK
视频:21-8 安装nacos
视频:21-9 SpringBoot应用的多环境打包
视频:21-10 SpringBoot应用的生产发布
视频:21-11 Vue CLI模块的生产打包
视频:21-12 Vue CLI模块的生产发布
视频:21-13 修复服务端访问失败的问题
视频:21-14 多节点的配置,保证服务高可用(一)
视频:21-15 多节点的配置,保证服务高可用(二)
视频:21-16 cdn配置介绍
视频:21-17 https配置介绍

第22章 项目优化9 节73分钟

本章从两个方面对项目做优化:1. 项目功能,在前面的章节已经完成了项目的核心功能,但还有些细节功能可以完善,本章将对项目功能做查缺补漏;2. 体验功能,项目做了很多高并发的优化,单从现有界面的操作来看,体现不出项目的特性,为了让大家更好的体验这个项目的功能,本章将加入一些体验功能。...
视频:22-1 本章介绍
视频:22-2 购票页面增加取消排队的功能
视频:22-3 余票查询页面增加显示车站信息
视频:22-4 购票页面增加发起多人排队功能
视频:22-5 增加座位销售图(一)
视频:22-6 增加座位销售图(二)
视频:22-7 只允许购买两周内的车次
视频:22-8 增加乘客初始化定时任务(为了线上体验)
视频:22-9 界面显示优化

第23章 课程总结1 节8分钟

本章主要对课程内容进行梳理,总结课程中的重难点,帮助大家更好的学习该课程,提升自身的技术水平,在职场中更具有竞争力。
视频:23-1 课程总结

课件.exe

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件、阿里云盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源