这是看慕课上的”甲蛙”老师的课, 真的超级厉害, 第一次看这个我就被深深的吸引了

项目介绍

高并发场景常见问题

  1. 秒杀还没开始,页面就崩了
    • 案例: 12306在2010年夏天上线,北京地区开放,访问量小。2011年春运时,放票前页面就打不开。
    • 优化手段: 页面静态化、CDN等
  2. 秒杀刚开始服务器就崩溃
    • 案例: 早期12306连数据库读写分离都没做。放票时服务器挂了,重启后又崩溃。
    • 解决方案: 限流令牌等技术
    • 示例: 1000个座位,1万人抢,准备2000个令牌
  3. 秒杀结束后库存崩了(超卖)
    • 案例: 商品秒杀中出现超卖,如1000元手机库存1台,结果卖出几十台
    • 解决方案: 加上分布式锁
  4. 秒杀过程没问题,但服务器响应很慢
    • 问题: 加锁防止超卖会影响并发量和用户体验
    • 解决方案: 异步削峰加排队

项目方向

  • 采用前后端分离架构
  • 后端: Spring Cloud Alibaba (最新版本)
  • 前端: Vue (最新版本)
  • 侧重后端和高并发技术
  • 适用于所有行业的高并发需求项目

项目特点

  1. 搭建支持千万级流量的大型分布式系统
  2. 全面学习高性能、高并发、高可用场景解决方案
    • 高性能: 快速响应1万个抢票请求
    • 高并发: 快速卖完1000张票且不超卖
    • 高可用: 持续稳定提供服务 (99.995%可用性,全年停机不超过5分钟)
  3. 使用最新版本的技术栈
    • Spring Boot 3
    • Spring Cloud Alibaba 最新版
    • JDK 17

项目主线

  1. 架构搭建
    • 前后端分离架构
    • Spring Cloud Alibaba (后端)
    • Vue CLI (前端)
  2. 基本功能实现
    • 自制代码生成器 (一分钟完成单表增删改查)
    • 实现复杂的选座功能
    • 维护车站、车次、车厢、座位等表
  3. 高并发相关知识
    • 限流加电排机制
    • 异步化加排队机制
    • 分布式锁
    • 逐层优化抢票功能

项目收获

  1. 学习前后端分离架构和微服务技术
    • 网关、注册中心、配置中心
    • 限流降级、分布式事务等
  2. 掌握通用的高并发技术
    • 缓存、分布式锁、限流令牌、削峰排队等
  3. 学习体系化的架构思维和独立架构能力

为什么选择SpringBoot3和JDK17?

  1. Java开发非常依赖Spring
    • Spring是Java的风向标
    • Spring的新功能、特性或新闻影响Java开发走向
  2. Spring Boot 3已正式发布
    • Spring Boot 3已正式发布
    • 面试可能会问到相关知识
  3. Spring Boot 3的重要新技术:AOT
    • 面向云延伸
    • 是Java开发的未来走向
  4. JDK 17是Spring Boot 3的最低要求
  5. 学习要激进,项目要滞后
    • 学习最新版本有助于了解新技术变化
    • 生产项目应使用稳定版本

应用的高并发技术

高并发技术包括:

  • CDN配置
  • 分布式缓存
  • 缓存问题解决(穿透、击穿、雪崩)
  • 两层验证码
  • 限流技术
  • 令牌技术
  • 分布式锁
  • 异步削峰
  • 排队机制
  • 分布式事务

下一节 项目日记Day02