秒杀系统04-订单详情(分布式锁)

本文探讨了秒杀系统中可能出现的超卖问题及其原因,并介绍了通过引入分布式锁来解决并发导致的超卖现象。文章详细阐述了使用Redis的setnx+expire实现分布式锁的过程,包括相关依赖、配置以及如何避免死锁。此外,还提到了Redisson在防止死锁方面的优势及其提供的额外功能。
摘要由CSDN通过智能技术生成

还是老三步,请求先到controller,controller找对对应方法,调用方法返回结果

 

 

 

 

但是现在还有问题,假如商品只有10件,但是来了1000个订单,那么会就失效,为了处理这个问题,所以引入了分布式锁。假如没有分布式锁,这里就会产生超卖问题。

超卖问题的原因在这儿:

第一步判断是否已经抢购,一般没有,能进入,第二部,判断是否可以被秒杀,这里就有问题了,假如1000个线程同时到达这里,都能判断能够秒杀,就多执行秒杀操作,这样就会造成超卖了 。原因就在于真正插入扣减成功的那段代码的逻辑晚于前面的判断。因为commonRecoedKillSucces

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值