预减库存问题

来源:7-5 redis预减库存,rabbitmq异步下单

慕函数2082699

2018-07-19

是不是应该先查重复订单,再预减库存,否则单个用户就算做了接口限流5s5次,瞬间来5个请求,都先预减,不就减了5次吗?最后只有一个能生成订单,但是这样的话,每个用户都这么做,不是会少卖很多吗?

写回答

1回答

若鱼1919

2018-07-19

(1)前端需要加上验证码,可以类似于12306那种,有效防止一个用户发出多个请求

(2)就算一个用户发出了多个请求,因为网络的不确定性,能否比别的用户都更快的到达服务器是不一定的

(3)卖超是不允许的,卖不完是允许的。对用户而言,秒杀中是意外,秒杀不中才是正常现象,没有用户会觉得你有任何的问题。

你说的这种情况理论上是存在的,实际上几乎不可能。

当然,为了以防万一,可以在初始化的时候,缓存中的数量大于库存数量,但是理论上还是存在这种可能的


1
0

Java秒杀系统方案优化 掌握海量访问通用解决方案

各种缓存/JSR303参数检

2695 学习 · 941 问题

查看课程