相信任何接触过电商软件的人,都参与或听说过“秒杀”活动,但是对秒杀业务理解较多的,知之甚少。此次只从 秒杀系统特性层面、运营层面 进行简单的阐述。
秒杀系统的特性
业务技术特点
大流量与高并发
只要不是默默无声的搞秒杀,一定会有大流量
- 技术上的处理,主要通过以下几个层面去解决:
- 数据预热(预加载)
将 秒杀商品 提前加入到缓存系统如 ES、Redis 等,防止商品超卖(需要用到”锁”)和缓存穿透甚至雪崩 - 限流
通过 网络代理层(如 Nginx)、SLB负载均衡层、程序限流组件与算法(如 guava 限流) 、前端逻辑过滤等多种手段,防止大流量而造成服务拒绝或阻塞 - 削峰
通过异步通信的设计与解决方案如 RPC、MQ等具体的实现 - 隔离
a. 通过部署隔离方案,在网络拓扑将秒杀系统独立部署,即使异常或宕机,至少不会导致主营业务系统受损或瘫痪
b. 库表分区
- 数据预热(预加载)
推荐阅读文章:
秒杀系统设计思路笔记 https://blog.csdn.net/qq_28666081/article/details/83043215
产品上 的处理,常见通过以下方式解决:
- 削峰
如交互路径设计、交互弹窗、报名机制、图形识别或验证码、答题等 - 防刷
如图形识别或验证码、答题、黑白名单、用户风控、交易风控引入等 - 限时
如支付窗口限时以防止锁库存和恶意竞争等 - 限流
对于次要或低频业务,降低流量区间。如历史订单只允许查看1个月3个月等
I/O密集
- 池化连接
- 数据预热
- 配置优化
运营层面
市场预热
- 品宣预告
- 活动预告
商品限制
- 限量销售
- 限时销售
- 限价销售
- 限用户(多策略模式)
秒杀的价值/目的
秒杀活动均是商业价值转换的常用玩法,如
- 市场激活
- 用户拉新
- 盘活用户
- 盘活平台
- 冲量交易额与订单数
- 其他(如清仓)