图/文:迷神
在企业中,特别是商城系统,秒杀是常见的应用,我们经常会遇到这样的场景,比如:秒杀活动中,有10万人抢购,如果我们只卖100件下面这个婴儿纸尿裤,那该怎么办法,这么多直接打DB上,肯定直接挂了,如果能保证库存不超发呢?
![d29475d8b8e8356fb97028e8a1f101cf.png](https://img-blog.csdnimg.cn/img_convert/d29475d8b8e8356fb97028e8a1f101cf.png)
商品秒杀
一般情况下,在企业应用开发过程中,执行抢购的逻辑流程如下:
![7808034256593bc0fcbb52a711ed781c.png](https://img-blog.csdnimg.cn/img_convert/7808034256593bc0fcbb52a711ed781c.png)
抢购流程
但凡是个秒杀,都怕超卖,秒杀的特点就是这样时间极短、 瞬间用户量大,
假如100纸尿裤,现在还剩下最后2个,第一个购买请求来了,买1个,从数据库中读取到库存有2个,数量够,可以买,减库存后,更新库存为1个。
接下来第二个购买来了,想买2个,发现库存为1,不够就不可以买了。