多级缓存与性能验证
构建 Caffeine + Redis + MySQL 三级缓存,通过先查后锁、节目级互斥锁、锁内双重检测及 Redis Stream 失效通知,降低热点回源与多实例缓存不一致风险;本机单实例热缓存压测中,100 并发下 QPS 由 934 提升至 6569,P95 由 146.6 ms 降至 29.6 ms,200 并发持续 60 秒完成 45.2 万次请求零失败。
项目案例
面向演出开售瞬时高并发场景,构建覆盖节目检索、选座锁座、下单支付及超时关单的微服务售票系统,重点解决热点查询压力、库存并发一致性、延迟任务可靠性及订单数据扩容问题。
业务背景
面向演出开售瞬时高并发场景,构建覆盖节目检索、选座锁座、下单支付及超时关单的微服务售票系统,重点解决热点查询压力、库存并发一致性、延迟任务可靠性及订单数据扩容问题。 本人职责:Java 后端开发 · 项目负责人。项目内容与数据口径来自秋招简历文字版。
工程决策
构建 Caffeine + Redis + MySQL 三级缓存,通过先查后锁、节目级互斥锁、锁内双重检测及 Redis Stream 失效通知,降低热点回源与多实例缓存不一致风险;本机单实例热缓存压测中,100 并发下 QPS 由 934 提升至 6569,P95 由 146.6 ms 降至 29.6 ms,200 并发持续 60 秒完成 45.2 万次请求零失败。
按票档拆分 Redisson 锁粒度,使用 Lua 原子完成余票校验、自动选座及未售/锁定库存迁移,四票档并发吞吐提升 2.14 倍;针对 15 分钟未支付订单,设计 ready-processing-ack 延迟关单模型,引入反压、可见性恢复、重试及 DLQ,降低实例宕机和线程池拒绝导致的任务丢失风险。
基于优化雪花算法和 Lua/Redis 集中分配 workerId、dataCenterId,降低 K8s 多实例节点标识碰撞风险;使用 ShardingSphere + 基因法 + 1024 个虚拟分片解耦逻辑路由与物理库表,并通过持久化游标、事务 change-log、幂等写入、逐桶校验及版本化切换,实现分批迁移与受控回滚。