消息队列如何保持数据一致性

比如说现在有个场景:用户下订单,涉及到2个系统,订单系统和库存系统,2个系统通过消息队列会话。
订单系统会新增一条订单记录,然后通知消息到队列,库存系统消费队列里的消息然后去减库存操作。
现在我的问题是:如果订单系统没有问题,但是库存系统减库存的时候没有成功,这个时候应该怎么办?
微信截图_20200307094815.png

阅读 2.7k
1 个回答

你业务需要对于强一致性的容忍度如何?建议的几种补偿方式:

  1. 【容忍度大】增加重试机制,报错后即时触发报警,持久化错误的消息,人工介入修复
  2. 【容忍度小】利用分布式事务,比如可以使用tcc(https://www.cnblogs.com/jajia...),实现失败后的回滚(即补偿)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进