Skip to content

题目14:秒杀系统设计 ​

📊 评分:— | 📅 完成时间:待完成


📝 题目 ​

如果让你设计一个秒杀系统,你会怎么做?重点说说流量削峰、库存扣减、防超卖、下单链路和高可用设计。


💬 我的回答 ​


📖 参考答案 ​

一、核心目标 ​

  • 扛住瞬时高并发
  • 防止超卖
  • 保证链路可降级
  • 尽量提升用户体验

二、常见方案 ​

  1. 活动预热,秒杀商品提前加载到缓存
  2. 网关层限流、验证码、黑名单拦截
  3. 请求先进入 MQ 削峰
  4. Redis 预扣库存,快速失败
  5. 异步创建订单,最终落库
  6. 通过幂等和状态机防止重复下单

三、关键问题 ​

  • 防超卖:原子扣减、单线程串行化或 Lua 脚本
  • 一人一单:用户维度幂等控制
  • 订单超时未支付:延迟队列回补库存
  • 高可用:降级、限流、隔离、兜底页

🎯 面试标准话术 ​

"秒杀系统的重点不是把请求全接住,而是让系统有秩序地拒绝一部分请求。通常会用缓存、限流、队列、异步化、库存预扣和幂等控制一起组合,核心目标是防超卖和保系统稳定。"

努力工作 享受生活