还是老三步,请求先到controller,controller找对对应方法,调用方法返回结果
但是现在还有问题,假如商品只有10件,但是来了1000个订单,那么会就失效,为了处理这个问题,所以引入了分布式锁。假如没有分布式锁,这里就会产生超卖问题。
超卖问题的原因在这儿:
第一步判断是否已经抢购,一般没有,能进入,第二部,判断是否可以被秒杀,这里就有问题了,假如1000个线程同时到达这里,都能判断能够秒杀,就多执行秒杀操作,这样就会造成超卖了 。原因就在于真正插入扣减成功的那段代码的逻辑晚于前面的判断。因为commonRecoedKillSucces