设计一个支撑百万级并发(QPS)的秒杀系统,是互联网架构中极其经典且极具挑战的题目。其核心难点在于:在极短时间内,处理海量请求,同时保证数据一致性(不超卖)和系统高可用(不宕机)。 核心设计思想可以总结为:层层过滤,漏斗模型,极致缓存,异步削峰。 以下是分层架构设计的详细方案: --- 一、 核心设计原则 1. 稳(高可用): 无论流量多大,系统不能崩,哪怕服务降级也要保证核心流程可用。 2. 准(一致性): 绝对不能超卖(卖出 101 个商品,库存只有 100)。 3. 快(高性能): 响应要快,链路要短,尽量减少对数据库的直接访问。 --- 二、 整体架构流程(漏斗模型) 我们将流量视为洪水,通过不同层级的“大坝”将流量拦截,最终只有极少量的有效请求能到达数据库。 1. 客户端层: 页面静态化 + 禁止重复点击。 2. 网络层(CDN/边缘计算): 拦截静态资源请求。 3. 网关层: 限流、黑名单、鉴权。 4. 应用层: 本地缓存 + Redis 预减库存。 5. 消息队列层: 异步削峰。 6. 数据库层: 最终持久化。 --- 三、 详细分层设计 1. 客户端/前端优化 (...