返回项目列表

PROJECT DETAIL

辰光演艺智能售票系统

面向演出行业的高并发票务系统

Spring Boot 3Spring CloudSpring AIRAGNacosSentinelRedisCaffeineShardingSphereElasticsearchMySQLLuaK8s

项目介绍

本项目为面向演出行业的高并发票务系统,支持用户注册、登录、节目浏览、节目详情查看、座位选择、下单购票、在线支付、订单管理等全链路业务闭环。

面试要点

面试要点:本项目涉及高并发票务系统的核心技术挑战,包括分布式 ID 生成、多级缓存架构、分库分表策略、缓存击穿防护、分布式锁与延迟队列等。面试官可能追问 K8s 环境下雪花算法 workerId 冲突的解决方案、基因法分片的原理、数据迁移的零停机方案等。

技术亮点

分布式 ID 生成

雪花算法+Lua/Redis 自动分配 workerId,解决 K8s 环境 ID 冲突。利用 Redis 的原子性操作实现 workerId 的动态分配与回收,避免传统雪花算法在容器化环境下的时钟回拨和 workerId 冲突问题。

面试追问: K8s 环境下雪花算法为何会产生 workerId 冲突?你是如何通过 Redis 解决这个问题的?

多级缓存架构

构建 Caffeine+Redis+数据库三级缓存体系,由演出时间驱动缓存淘汰策略。热点演出数据提前预热到本地缓存,利用 Redis Pub/Sub 实现缓存一致性通知。

面试追问: Caffeine 和 Redis 分别承担什么角色?本地缓存与分布式缓存如何保证一致性?

分库分表与数据迁移

数据增长后采用 ShardingSphere 进行分库分表,使用基因法+虚拟分片实现数据均匀分布。数据迁移支持分批执行、快速切换与回滚,降低迁移风险,实现秒级切换。

面试追问: 基因法的核心原理是什么?数据迁移过程中如何保证数据一致性和服务可用性?

缓存击穿防护

读写锁+双重检测+先查后锁策略解决热点 Key 缓存击穿问题。结合 Redisson 分片锁+线程池优化延迟队列吞吐,保证高并发场景下的订单处理稳定性。

面试追问: 缓存击穿、穿透、雪崩的区别是什么?你的"先查后锁"策略如何避免死锁?