这是看慕课上的”甲蛙”老师的课, 真的超级厉害, 第一次看这个我就被深深的吸引了
项目介绍
高并发场景常见问题
- 秒杀还没开始,页面就崩了
- 案例: 12306在2010年夏天上线,北京地区开放,访问量小。2011年春运时,放票前页面就打不开。
- 优化手段: 页面静态化、CDN等
- 秒杀刚开始服务器就崩溃
- 案例: 早期12306连数据库读写分离都没做。放票时服务器挂了,重启后又崩溃。
- 解决方案: 限流令牌等技术
- 示例: 1000个座位,1万人抢,准备2000个令牌
- 秒杀结束后库存崩了(超卖)
- 案例: 商品秒杀中出现超卖,如1000元手机库存1台,结果卖出几十台
- 解决方案: 加上分布式锁
- 秒杀过程没问题,但服务器响应很慢
- 问题: 加锁防止超卖会影响并发量和用户体验
- 解决方案: 异步削峰加排队
项目方向
- 采用前后端分离架构
- 后端: Spring Cloud Alibaba (最新版本)
- 前端: Vue (最新版本)
- 侧重后端和高并发技术
- 适用于所有行业的高并发需求项目
项目特点
- 搭建支持千万级流量的大型分布式系统
- 全面学习高性能、高并发、高可用场景解决方案
- 高性能: 快速响应1万个抢票请求
- 高并发: 快速卖完1000张票且不超卖
- 高可用: 持续稳定提供服务 (99.995%可用性,全年停机不超过5分钟)
- 使用最新版本的技术栈
- Spring Boot 3
- Spring Cloud Alibaba 最新版
- JDK 17
项目主线
- 架构搭建
- 前后端分离架构
- Spring Cloud Alibaba (后端)
- Vue CLI (前端)
- 基本功能实现
- 自制代码生成器 (一分钟完成单表增删改查)
- 实现复杂的选座功能
- 维护车站、车次、车厢、座位等表
- 高并发相关知识
- 限流加电排机制
- 异步化加排队机制
- 分布式锁
- 逐层优化抢票功能
项目收获
- 学习前后端分离架构和微服务技术
- 网关、注册中心、配置中心
- 限流降级、分布式事务等
- 掌握通用的高并发技术
- 缓存、分布式锁、限流令牌、削峰排队等
- 学习体系化的架构思维和独立架构能力
为什么选择SpringBoot3和JDK17?
- Java开发非常依赖Spring
- Spring是Java的风向标
- Spring的新功能、特性或新闻影响Java开发走向
- Spring Boot 3已正式发布
- Spring Boot 3已正式发布
- 面试可能会问到相关知识
- Spring Boot 3的重要新技术:AOT
- 面向云延伸
- 是Java开发的未来走向
- JDK 17是Spring Boot 3的最低要求
- 学习要激进,项目要滞后
- 学习最新版本有助于了解新技术变化
- 生产项目应使用稳定版本
应用的高并发技术
高并发技术包括:
- CDN配置
- 分布式缓存
- 缓存问题解决(穿透、击穿、雪崩)
- 两层验证码
- 限流技术
- 令牌技术
- 分布式锁
- 异步削峰
- 排队机制
- 分布式事务
下一节 项目日记Day02