关于库存一致的问题

来源:9-1 流量削峰技术引入

慕函数2082699

2019-06-16

1、库存redis和数据库异步,那产品展示也中的库存数字是用redis中的?还是数据库中的?
2、目前redis和provider消息是符合一致性了,那如果消息consumer处理失败,依旧无法保证redis和数据库最终事务一致?

写回答

1回答

龙虾三少

2019-06-16

关于展示问题,我建议都是按照redis中取,取不出来再取数据库的,若数据库内数据更新,比如下单成功,则发送异步消息去清除redis数据,这样下次过来就可以走数据库拿到正确的数据了,当然也会有扣减库存没有清redis快,但业务上对库存还剩多少件展示层面没必要那么实时


consumer处理失败分为两种情况:

  1. 程序退出或网络问题等,这种mq不会被标记为消费成功,mq会重试直到成功为止

  2. 无论重试多少次都不能consume成功的消息,目前情况下业务是先扣redis的,因此不会又这种情况

0
2
龙虾三少
使用mq这种情况只能保证消费端处理成功或者处理不成功也可以忽略的场景 没有办法回退provider 这种需要靠业务设计去规避
2019-06-16
共2条回复

聚焦Java性能优化 打造亿级流量秒杀系统(赠秒杀项目)

理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题

2174 学习 · 1009 问题

查看课程