如何设计秒杀系统
秒杀系统特点
- 限时 限量 限价
- 活动预热:活动需要提前配置
- 持续时间短,流量突增
- 瞬时并发高
- 读多写少
需要注意的问题
- 超卖问题
- 恶意请求
- 链接暴露
设计
- 前端设计
- 页面静态化cdn
- 做好防抖,点击按钮后周期置灰
- 后端设计
- 服务高可用,扩容,容灾
- 限流 降级 保证核心功能
- 秒杀服务独立部署
- 使用MQ削峰填谷
- 缓存预热热点数据
- 避免缓存同时过期,缓存击穿问题,可以使用布隆过滤器
- 如何保证不超卖?
- 下单扣减库存,超时取消,还库存,使用lua脚本扣减库存
下单流程
下单扣库存,超时未支付,返还库存