标签:思路 一个 成功 不成功 redis 排队 消费 通过 逻辑
秒杀逻辑:
1.前端调用秒杀下单接口,该接口将用户信息,秒杀商品信息,以及生产的秒杀Id,发送给Mq,然后立刻将秒杀Id返回给前端
2.前端拿到响应后,跳转到支付结果页,然后在该结果页查询(通过秒杀Id)查询用户秒杀结果,每隔几秒查询一次,查询不到结果就显示一个抢购正在排队中.............
3.秒杀Mq消费者接收到秒杀业务消息,使用分布式锁进行库存扣减,成功后,存到数据库,不成功也存一条秒杀结果到数据库,这样就可以前端查询结果就可以返回了
4.可以将秒杀结果存到redis,userId加一个是否成功的状态,这样用户查询结果,可以很快判断是否秒杀成功了,强购成功的用户也存redis,但没库存时,直接判断用户在不在redis中,不在立刻返回失败,这样用户不用等太久就知道结果了
在第一步时:可以先从redis中取出库存,没库存,立刻返回失败,有库存就转发到Mq,前端加个防重机制,用户点击后,就只能5秒后再点击
标签:思路 一个 成功 不成功 redis 排队 消费 通过 逻辑
原文地址:https://www.cnblogs.com/yangxiaohui227/p/11332468.html