面试官让我设计一个秒杀系统
秒杀系统需要解决哪些问题,这里列几个关键性的问题:
1、高并发的瞬时流量
2、库存扣减
3、重复下单
4、热点数据
1、如何解决高并发的瞬时流量:
限流、多级缓存架构
2、库存扣减
cas数据库扣除,redis lua脚本扣除
3、重复下单
每个页面一个token,请求的时候携带token
4、热点数据
存在redis里
5、如何解决用户下一单或用户N单的问题
在写redis lua脚本扣除商品缓存时候,进行重复下单或N单的检测。
下一单:在下单的时候,将用户id,添加到set结构里,然后判断id是否在set里,判断用户是否下过单。
下N单:redis的key设置为seckill:userid:xxx,值为下单的数量,在下单的进行判。incrby进行加法操作。
上一篇:博客项目简介
相关文章
-
与第三方接口对接的注意事项与实现方案
在现代分布式系统与微服务架构中,系统之间的能力复用越来越依赖第三方接口(支付、短信、地图、风控、物流等)。
NEW个对象 2026-06-08
-
为什么各大公司禁止连表查询?
为什么各大公司禁止连表查询?
NEW个对象 2026-06-11
-
降级条件设置代码如何实现?从手写熔断器到 Sentinel 实战详解
降级条件设置代码如何实现?从手写熔断器到 Sentinel 实战详解
NEW个对象 2026-06-12