架构设计-系统设计-秒杀系统-TOC
0. 与其他卡片的关联
- 前置卡片:
- 后续卡片:
- 相似主题:
1. 核心观点
(核心观点下四个小标题填写核心定义摘要,要求简明扼要)格式如下
Ⅰ. 概念层
Ⅱ. 应用层
Ⅲ. 实现层
IV. 原理层
2. 背景/出处
- 来源:
3. 展开说明
4. 应用/启发
(个人思考、引发的问题或工作/生活中的应用点)
5. 待办/进一步探索
基本概念
" 秒杀 " 是电商平台上常见的一种促销活动,通常在短时间内提供限量的商品,以极具吸引力的价格吸引大量用户参与。这种活动能够迅速增加流量和销量,但也对系统的性能和稳定性提出了极高的要求。本文将深入探讨电商秒杀系统的技术原理,介绍关键技术和其实现方法。
业务特点

本质问题
秒杀系统本质是极端热点场景下的高并发读写系统,其核心目标是在保证高性能、高可用的前提下完成有限资源的公平竞争。
- 瞬时流量洪峰
- 热点数据竞争
- 高并发读
- 高并发写
- 系统容量保护
核心矛盾:
用户流量 >> 系统处理能力
因此必须通过:
缓存
限流
降级
异步
隔离
实现流量治理。
原理
秒杀架构优化本质
减少资源消耗
减少系统调用
减少网络跳数
减少依赖链路
消除单点故障
即:
提升吞吐量
=
减少系统做的事情
面临挑战和优化策略
原则:而从一个架构师的角度来看,要想打造并维护一个超大流量并发读写、高性能、高可用的系统,遵循 架构设计-秒杀系统-架构原则-TOC
基本演进案例: 架构设计-秒杀系统-架构演进案例
总体思路:架构设计-流量削峰-分层过滤
- 高性能:高并发,秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。瞬间涌入的高并发请求可能超出系统的处理能力,造成性能瓶颈和响应延迟。整个请求链路上都要做协同的优化,每个地方快一点,整个系统就完美了。
- 策略
- 并发读的核心优化理念是尽量减少用户到服务端来 " 读 " 数据,或者让他们读更少的数据;
- 并发写的处理原则也一样,它要求我们在数据库层面独立出来一个库,做特殊的处理。另外,我们还要针对秒杀系统做一些保护,针对意料之外的情况设计兜底方案,以防止最坏的情况发生。
- 实际手段
- 策略
- 一致性问题:多用户同时抢购有限库存,容易出现超卖和库存不一致的问题。
- 采用分布式原子计数器和 CAS 机制,确保并发操作时的数据一致性和正确性。
- 业务冲击:秒杀活动的激增流量可能影响系统的其他业务功能,导致整体性能下降。
- 客户端限流:架构设计-流量削峰-客户端限制下单频率和无效请求
- 接入层限流:架构设计-接入层-高并发下负载均衡和限流
- 应用层独立部署 + 隔离 + 限流:架构设计-应用层-隔离对其他服务的冲击-独立部署+隔离+限流
- 高可用:虽然我介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,我们还要设计一个 PlanB 来兜底,以便在最坏情况发生时仍然能够从容应对。专栏的最后,我将带你思考可以从哪些环节来设计兜底方案。
架构
[[03- 总体架构.drawio]]

应用场景
- 电商秒杀
- 抢购活动
- 演唱会抢票
- 火车票抢购
- 数字藏品发售
- 游戏礼包发放
- 限量商品发售
核心指标
| 指标 | 要求 |
|---|---|
| TPS | 极高 |
| RT | 极低 |
| 可用性 | 极高 |
| 一致性 | 最终一致 |
| 成本 | 可接受 |
6. 参考资料
- 主要参考
- 极客时间:如何设计一个秒杀系统
- 打造高性能秒杀系统:技术深析与实践
- 更多资源
- 《大型网站技术架构》网购秒杀系统架构设计案例分析
- 面试必考:秒杀系统如何设计?
- 秒杀系统设计与实现
- 实践出真知:全网最强秒杀系统架构解密
- 刷新和预热资源