平台定位
面向文旅活动(演出、展览、赛事等)预约场景的一站式管理平台,覆盖创意投稿、活动发布、场次调度、在线预约、支付核销、内容审核等全链路,支撑高并发(QPS 2000+)下的资源精准管控与状态自动化流转。
业务功能
1、活动与场次管理:支持活动创建、发布、修改、下线及多维度检索,操作日志全程追溯;场次状态(待开启、进行中、已结束等)由定时任务自动切换,减少人工干预。
2、高并发预约库存系统:实现“预扣→确认→回滚”完整事务,保障超卖防护,支持秒级抢票场景。
3、投稿与审批流程:创作者在线投稿,集成多媒体存储与CDN加速,状态机驱动多级审核,并接入支付系统完成费用结算(如报名费)。
4、统一状态机抽象:驱动预约、投稿等核心业务状态变更,结合AOP自动记录历史、校验权限,提升复用性。
5、用户预约与参与人管理:绑定参与人、批量导入、支付核销、过期自动回收,Redis缓存降低DB压力。
6、统一文件服务:多云存储与本地动态切换,文件与业务实体绑定,临时授权防盗链。
架构:Spring Boot + Vue + MyBatis-Plus,分层清晰;Nginx负载均衡,集群部署,Redis缓存,RabbitMQ异步解耦,MySQL主从。
库存扣减:Redis Lua脚本原子扣减,Redisson分布式锁(看门狗续期);延迟消息(死信队列)+定时任务补偿,实现最终一致性,压测TPS 2000+。
定时任务:XXL-JOB(或Scheduled+分布式锁)每30秒扫描场次,联动更新主活动状态,并通过MQ通知用户。
状态机:通用状态机引擎(IState/IEvent),@StateMachine切面拦截,自动记录变更历史,权限校验,减少冗余if-else。
预约闭环:支付异步回调(MQ处理),过期双保障(延迟消息+定时扫描);参与人信息使用Redis Set/Hash缓存,EasyExcel批量导入。
文件服务:策略模式(阿里云OSS/本地),FileID关联业务表,临时签名URL(5分钟有效),上传后自动刷新CDN。
数据库优化:联合索引、逻辑分表预留;Druid监控慢SQL,热点数据分离。
前端优化:Vuex/Pinia管理预约状态,防抖节流防重复提交,核销页WebSocket实时反馈;大文件分片上传+断点续传。