采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
有个问题请教一下,通过redis扣减库存的业务中,redis扣减库存成功后没有走到新增订单的逻辑服务宕机了,导致订单新增失败了,这个时候redis的库存就多扣了一个,mq会产生一条未知状态的消息,我们采取对超过15分钟未处理的消息,就把redis的库存加一,这个时候就会有超卖的问题,此时数据库的库存是正确的,但是redis里的库存会一直是不准确的,请问这种情况要怎么办呢,一般是采取什么机制把数据库的库存同步到redis呢
数据库和redis之间没有办法保证绝对的强一致 所以宁可少卖 不要超卖
我们的场景是允许一定的负数的,但是负数不能太大,我想在消费者更新数据库的库存的时候,如果数据库的库存为0的话,就直接标记库存售罄,这样的话会不会有什么问题
数据库操作是异步的 会有风险
有办法保证最终一致性也行啊,但是如果中途宕机了,就对不上了
登录后可查看更多问答,登录/注册
理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题
1.8k 11
1.3k 10
1.7k 9
1.3k 9
1.1k 8