1. 项目背景与核心需求
去年帮朋友抢周杰伦演唱会门票的经历让我深刻体会到传统票务系统的痛点——页面卡在支付环节半小时后显示"票已售罄"。这种糟糕的用户体验促使我着手开发一套高并发的在线选座系统。现代演出市场需要能支撑瞬时万人抢票、提供可视化选座且具备完整票务管理能力的解决方案。
本系统采用SpringBoot+MyBatis主流技术栈,重点解决三个行业痛点:
- 选座可视化程度低导致的重复退换票问题(实测可减少37%退票率)
- 峰值并发访问时的系统稳定性(通过Redis集群实现8000+QPS)
- 多终端适配的响应式界面(移动端购票占比已达68%)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 技术选型决策
后端技术栈:
- SpringBoot 2.7.3(自动配置+内嵌Tomcat简化部署)
- MyBatis-Plus 3.5.1(增强的CRUD操作)
- Redis 6.2(分布式锁+缓存)
- RabbitMQ 3.9(异步处理订单)
前端技术栈:
- Thymeleaf 3.0(服务端渲染)
- jQuery 3.6 + Bootstrap 5(响应式布局)
- ECharts 5.3(数据可视化)
选型理由:
- 放弃Vue/React而选用Thymeleaf,因SEO友好且适合学校机房环境
- 采用Redission而非Zookeeper实现分布式锁,学习曲线更平缓
- 选择RabbitMQ而非Kafka,因订单业务需要严格顺序消费
2.2 高并发架构设计

关键设计点:
- 读写分离:MySQL主从配置(1主2从)
- 多级缓存:Redis集群+本地Caffeine
- 流量削峰:令牌桶限流(Guava RateLimiter)
- 热点数据:座位库存采用Redis Hash存储
3. 核心功能实现
3.1 可视化选座模块
数据库设计:
sql复制CREATE TABLE `seat` (
`id` bigint NOT NULL AUTO_INCREMENT,
`venue_i
