Skip to content

如果让你设计一个秒杀系统,你会考虑哪些方面?(引导你从网关限流、缓存、库存扣减、异步化、降级熔断等方面回答)

  • 前端防重复点击,网关做好全局限流,第一道防线
  • 用户级别限流,防止非法脚本,甚至可以短时间列入黑名单
  • 熔断降级策略,防止服务器系统负载过高
  • 多级缓存,抗压
  • redis集群,抗压
  • 缓存预热
  • 库存扣减利用redis的lua脚本,比数据库更快,然后异步更新库
  • 异步创建订单,并且表设计优化,先存储关键信息,再异步补全其他信息

如何设计一个分布式锁?

  • 互斥,redis单线程,就是很好的选择
  • 可重入,存储当前线程id + 计数器
  • 锁超时自动释放,防止死锁

也可以加入监听续约,以及轮询等待锁等功能。

页脚:版权前显示的信息