01
系统架构概览
高并发订单系统的核心挑战与设计目标,整体技术栈选型(Spring Boot + Redis + RocketMQ + MySQL + Nginx)
架构选型
02
环境搭建与工程初始化
Spring Initializr创建项目,Maven依赖,多模块工程结构(common、order、stock、gateway)
Spring BootMaven
03
数据库表结构设计
订单主表、明细表、库存表设计,索引策略,分库分表(ShardingSphere)初步规划
MySQL分库分表
04
MyBatis-Plus整合与逆向工程
整合MyBatis-Plus,配置代码生成器,生成Mapper、Service、Controller基础代码
MyBatis-Plus逆向工程
05
统一返回结果与全局异常处理
定义统一响应体Result<T>,全局异常拦截器@ControllerAdvice,规范日志打印
异常处理日志
06
订单核心流程设计
下单、支付、取消、退款核心状态机设计,状态流转图
状态机订单
07
接口幂等性设计
为什么需要幂等?基于Redis+Token的幂等方案,防重复提交
幂等Redis
08
库存扣减方案(一)
数据库乐观锁扣减库存,CAS机制,ABA问题处理
乐观锁CAS
09
库存扣减方案(二)
Redis+Lua脚本原子扣减库存,库存预热,库存回滚
Lua原子操作
10
库存扣减方案(三)
最终一致性方案——先扣Redis再异步同步DB,补偿机制
最终一致性补偿
11
分布式锁实战(一)
基于Redis SetNX实现分布式锁,锁超时与自动续期(Redisson看门狗)
分布式锁Redisson
12
分布式锁实战(二)
基于Zookeeper临时顺序节点实现公平锁,Curator框架使用
ZookeeperCurator
13
消息队列选型与RocketMQ入门
RocketMQ核心概念(Topic、Tag、Group),安装与控制台使用
RocketMQ消息队列
14
RocketMQ生产者实战
同步/异步/单向发送,事务消息实现订单与库存最终一致性
事务消息生产者
15
RocketMQ消费者实战
集群消费与广播消费,顺序消息,重试机制与死信队列
消费者重试
16
订单异步处理流程
下单后发送延迟消息(30分钟未支付自动取消),支付回调处理
延迟消息异步
17
秒杀系统设计(一)
秒杀场景特点分析,前端限流(按钮置灰、验证码),后端限流(令牌桶、漏桶)
秒杀限流
18
秒杀系统设计(二)
秒杀接口防刷(IP限流、User-Agent校验),秒杀路径动态化
防刷动态路径
19
秒杀系统设计(三)
秒杀核心逻辑——预减库存、校验重复下单、生成订单、异步落库
预减库存异步落库
20
缓存策略与Redis实战
热点数据缓存(商品信息、库存),缓存穿透/击穿/雪崩解决方案
缓存Redis
21
本地缓存与多级缓存
Caffeine本地缓存 + Redis分布式缓存 + Nginx缓存,缓存一致性(Canal + MQ)
多级缓存Canal
22
Nginx反向代理与负载均衡
Nginx配置,动静分离,限流模块(ngx_http_limit_req_module)
Nginx负载均衡
23
网关层(Spring Cloud Gateway)实战
路由转发、过滤器链、统一鉴权、请求限流(RequestRateLimiter)
Gateway限流
24
服务熔断与降级
Sentinel整合,流控规则、熔断规则、热点参数限流,Fallback处理
Sentinel熔断
25
分布式事务(Seata)
AT模式与TCC模式,订单服务与库存服务的分布式事务实战
Seata分布式事务
26
订单超时处理方案
RocketMQ延迟消息 + Redis过期监听 + 定时任务扫表(Quartz),三种方案对比
超时处理Quartz
27
数据一致性保障
对账系统设计,每日对账脚本,异常订单自动补偿
对账补偿
28
压测与性能调优
JMeter压测脚本编写,QPS/TPS/RT指标分析,慢SQL优化,JVM调优
JMeterJVM
29
日志收集与监控告警
ELK搭建,Pinpoint链路追踪,Prometheus + Grafana监控,钉钉告警
ELK监控
30
项目总结与面试指南
系统架构总览图回顾,核心难点复盘,高频面试题解析(如何保证库存不超卖?消息不丢失?)
面试复盘