什么是事务、半事务消息?怎么实现的?

2022-05-30  本文已影响0人  嘘寒问暖

事务消息就是MQ提供的类似XA的分布式事务能⼒,通过事务消息可以达到分布式事务的最终⼀致性。半事务消息就是MQ收到了⽣产者的消息,但是没有收到⼆次确认,不能投递的消息。

实现原理如下:

1. ⽣产者先发送⼀条半事务消息到MQ

2. MQ收到消息后返回ack确认

3. ⽣产者开始执⾏本地事务

4. 如果事务执⾏成功发送commit到MQ,失败发送rollback

5. 如果MQ⻓时间未收到⽣产者的⼆次确认commit或者rollback,MQ对⽣产者发起消息回查

6. ⽣产者查询事务执⾏最终状态

7. 根据查询事务状态再次提交⼆次确认

最终,如果MQ收到⼆次确认commit,就可以把消息投递给消费者,反之如果是rollback,消息会保存下来并且在3天后被删除。

上一篇 下一篇

猜你喜欢

热点阅读