Redis解决库存超卖问题实例讲解
商品和订单服务间使用MQ商品服务的库存变化时,通过 MQ 通知订单服务库存变化。之后通过消息通知服务异步下单,若第4步异步下单失败,重试操作,试图重新生成订单,MQ的消息也可回溯。注意,这里可能因为某些不可抗因素导致扣库存失败,无论成功与否,商品服务都会发送一个扣库存消息到 MQ,消息内容即扣库存的结果。欲实现上述模型要求,需可靠的消息投递。redis库存和mysql库存支付前是预扣,是扣redis库存,是锁定库存的过程但是,在极端情况下会存在数据不一致。这样总体不会出问题,mysql数据库层,保证库存最终不会出问题。如果扣除缓存中的库存失败,就会挡在外面,返回库存不足,这些请求不会穿刺到mysql中,挡住了大多数的请求压力。
下载地址
用户评论