如何通过消息队列保证数据一致性?

|

为什么会存在数据不一致性:

  • 假如本地事务执行成功后,发送一个消息出去异步处理,这个消息如果投递失败了,那么消费方系统的数据会缺失;
  • 如果投递成功了,消费方没有消费,也会导致数据确实缺失;
  • 如果本地事务提交失败了,但是消息发送出去了,也可能会导致数据不一致。

为了解决这个问题,也就是解决如何保证消息投递不丢失,保证消息消费不丢失,保证消息发送跟随本地事务状态发送的,参考这个问题:消息队列如何避免消息丢失?