项目技术亮点
# 项目技术亮点
# 项目描述
仿 12306 的购票系统,涵盖用户注册登录、车次查询、购票下单、排队购票、会员管理等核心业务,深度实践微服务架构、分布式锁、消息队列、限流降级等高并发技术。
# 技术栈
Spring Boot · Spring Cloud Alibaba · Nacos · Gateway · OpenFeign · Seata · Sentinel · Redis · Redisson · RocketMQ · MyBatis · MySQL
# 核心职责与技术亮点
- 分布式锁防超卖:为解决多节点部署下购票超卖问题,从
synchronized→ RedisSETNX→ Redisson 看门狗逐步演进,使用 Redisson 分布式锁 + 守护线程自动续期解决锁超时问题,保证多节点下购票不超卖 - 令牌大闸防刷:为解决机器人刷票导致数据库压力过大的问题,设计令牌桶限流机制,在购票前校验令牌余量拦截刷票请求,保护数据库不被无效查询压垮
- RocketMQ 异步排队购票:为解决高并发购票场景下同步出票导致响应慢的问题,使用 RocketMQ 将购票流程拆分为"快速响应"与"异步出票"两阶段,用户下单后立即返回、后台消费者异步处理出票逻辑,实现削峰填谷
- Seata 分布式事务:为解决跨服务数据一致性问题,集成 Seata AT 模式处理跨服务事务(如扣减库存 + 创建订单),自动生成反向 SQL 实现回滚,保证分布式场景下数据正确
- Sentinel 限流降级:为解决高并发下核心服务被拖垮的问题,使用 Sentinel 实现接口限流(令牌桶/漏桶算法)与熔断降级,保护核心服务稳定性
- Spring Cloud Gateway 网关:为解决微服务端口暴露安全问题,使用 Spring Cloud Gateway 统一路由转发、统一鉴权、黑白名单访问控制,生产环境仅暴露网关端口保障服务安全
- Nacos 注册与配置中心:为解决服务注册发现与配置动态更新问题,使用 Nacos 作为注册与配置中心,支持运行时修改限流阈值、开关等配置无需重启
- JWT 单点登录:为解决微服务集群下会话管理问题,基于 JWT 实现无状态单点登录,前端 Axios 拦截器统一携带 Token,后端拦截器校验 Token 有效性
- ThreadLocal 会员信息传递:为解决会员信息层层传参冗余的问题,在拦截器中获取会员信息存入
ThreadLocal,Controller/Service 层直接从线程本地变量获取,简化代码逻辑 - 多级缓存优化:为解决高并发下数据库查询压力大的问题,构建 MyBatis 一级缓存 → Spring Cache 本地缓存 → Redis 分布式缓存的多级缓存体系,Full GC 频繁时降级为
ThreadLocal线程本地变量
上次更新: 2026/10/10 18:05:45