百万级 QPS 秒杀/抢票系统架构

重点: 漏斗式流量过滤:CDN → 网关限流熔断 → Redis 原子预扣 → MQ 削峰 → MySQL 落单. 关键要素: Alibaba Cloud CDN / Tencent Cloud CDN, Cache-Control/...

Use this as a block diagram of the system when explaining architecture.

Preview
Edit this example
Diagram caption: 百万级 QPS 秒杀/抢票系统架构(漏斗式流量过滤:CDN → 网关限流熔断 → Redis 原子预扣 → MQ 削峰 → MySQL 落单) has 5 layers: 边缘加速层(静态缓存与抗压), 网关漏斗层(限流/熔断/降级), 核心秒杀业务层(原子预扣与快速返回), 异步削峰层(消息队列与平滑消费), 数据持久化层(最终落单与对账).

Prompt

百万级 QPS 高并发秒杀/抢票系统架构图。设计‘漏斗型’流量过滤机制:最前端使用 CDN 缓存静态页面;网关层(Nginx/Gateway)配置漏桶算法进行限流熔断;核心业务层使用 Redis 集群配合 Lua 脚本进行原子性库存预扣减,防止超卖;成功请求写入 RocketMQ 消息队列进行异步削峰;后端消费者平滑写入 MySQL 数据库生成最终订单。
Highlights
  • Layer details · 边缘加速层(静态缓存与抗压): Modules include CDN(静态页与资源缓存), 动态加速与防刷(可选).
  • Layer details · 网关漏斗层(限流/熔断/降级): Modules include Nginx / API Gateway, 鉴权与幂等控制.
  • Key flows · Flow across layers: 边缘加速层(静态缓存与抗压) -> 网关漏斗层(限流/熔断/降级) -> 核心秒杀业务层(原子预扣与快速返回).

Overview

百万级 QPS 秒杀/抢票系统架构(漏斗式流量过滤:CDN → 网关限流熔断 → Redis 原子预扣 → MQ 削峰 → MySQL 落单) has 5 layers: 边缘加速层(静态缓存与抗压), 网关漏斗层(限流/熔断/降级), 核心秒杀业务层(原子预扣与快速返回), 异步削峰层(消息队列与平滑消费), 数据持久化层(最终落单与对账).

Layer details

Show all (5)
  • 边缘加速层(静态缓存与抗压): Modules include CDN(静态页与资源缓存), 动态加速与防刷(可选).
  • 网关漏斗层(限流/熔断/降级): Modules include Nginx / API Gateway, 鉴权与幂等控制.
  • 核心秒杀业务层(原子预扣与快速返回): Modules include 秒杀/抢票服务(Seckill Service), Redis 库存预扣(Lua 原子脚本), 快速失败与降级策略(可选).
  • 异步削峰层(消息队列与平滑消费): Modules include RocketMQ(异步削峰队列), 订单创建消费者(Order Consumer).
  • 数据持久化层(最终落单与对账): Modules include MySQL 订单库(最终一致落单), 订单结果查询与回写(可选).

Module responsibilities

Show all (11)
  • 边缘加速层(静态缓存与抗压) / CDN(静态页与资源缓存): 将静态内容下沉到边缘节点; 削减源站带宽与 QPS 压力; 为秒杀峰值提供第一道缓冲
  • 边缘加速层(静态缓存与抗压) / 动态加速与防刷(可选): 降低机器流量对核心链路的冲击; 提升请求真实性与有效性; 为网关层限流提供更干净流量
  • 网关漏斗层(限流/熔断/降级) / Nginx / API Gateway: 对外统一入口并快速过滤无效流量; 在峰值时将流量稳定“滴灌”到核心服务; 保障核心资源(Redis/MQ/DB)不被打爆
  • 网关漏斗层(限流/熔断/降级) / 鉴权与幂等控制: 确保请求来自合法用户; 限制同一用户重复提交; 降低恶意重放与刷请求
  • 核心秒杀业务层(原子预扣与快速返回) / 秒杀/抢票服务(Seckill Service): 承接通过网关过滤后的有效流量; 尽可能在内存/缓存层完成关键判断; 对成功请求快速返回并写入 MQ
  • 核心秒杀业务层(原子预扣与快速返回) / Redis 库存预扣(Lua 原子脚本): 在高并发下实现原子库存扣减; 防止超卖与重复下单; 以极低延迟完成核心判定
  • 核心秒杀业务层(原子预扣与快速返回) / 快速失败与降级策略(可选): 在售罄或依赖异常时快速失败; 降低对 Redis/MQ 的无效压力; 提升整体稳定性与可用性
  • 异步削峰层(消息队列与平滑消费) / RocketMQ(异步削峰队列): 将成功请求异步化,隔离下游数据库压力; 实现削峰填谷与流量平滑; 提供可靠投递与可重试机制
  • 异步削峰层(消息队列与平滑消费) / 订单创建消费者(Order Consumer): 平滑消费并控制数据库写入速率; 保障消息到订单的最终一致性; 通过幂等与重试保证不重不漏
  • 数据持久化层(最终落单与对账) / MySQL 订单库(最终一致落单): 持久化最终订单与支付信息; 通过唯一约束保证幂等落单; 支撑后续支付/履约/对账
  • 数据持久化层(最终落单与对账) / 订单结果查询与回写(可选): 为用户提供下单结果可视化; 减少 DB 轮询压力; 保障 Redis 预扣与 DB 落单一致

Key flows

Show all (1)
  • Flow across layers: 边缘加速层(静态缓存与抗压) -> 网关漏斗层(限流/熔断/降级) -> 核心秒杀业务层(原子预扣与快速返回).