美文网首页
什么是事务、半事务消息?怎么实现的?

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

作者: 嘘寒问暖 | 来源:发表于2022-05-30 23:50 被阅读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天后被删除。

相关文章

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

    事务消息就是MQ提供的类似XA的分布式事务能⼒,通过事务消息可以达到分布式事务的最终⼀致性。半事务消息就是MQ收到...

  • 2021-05-24

    事务的特性, 事务的隔离级别 死锁怎么解决 分布式事务怎么实现 rabbitmq消息的顺序和消息的堆积 防止重复提...

  • 精华推荐 | 【深入浅出RocketMQ原理及实战】「性能原理挖

    什么是事务消息 事务消息(Transactional Message)是指应用本地事务和发送消息操作可以被定义到全...

  • 数据库事务书目录

    数据库事务 事务概念 本地事务 全局事务 全局事务的定义 J2EE中全局事务的实现 全局事务的优缺点 基于消息的分...

  • rocketmq实现事务消息

    参考:rocketmq实现事务消息

  • MQ和Mysql二阶段提交

    MQ事务消息两阶段提交过程 主要的过程为: 1、先向服务端发送半事务消息,发送成功后执行本地事务 2、本地事务执行...

  • RocketMQ事务消息

    抽空扒一下RocketMQ的事务消息,看看具体的实现,版本4.6.0。 基本原理 RocketMQ的事务消息实现是...

  • 2020-03-12

    rocketMq: 事务消息发送步骤如下: 发送方将半事务消息发送至消息队列 RocketMQ 版服务端。 消息队...

  • 事务消费

    事务消费RocketMq 的事务属于半事务,只能保证生产者事务成功之后,将消息发送到broker,如果消费者消费失...

  • 从基础到进阶,一文详解RocketMQ事务消息,看完不会跪键盘

    事务消息是RocketMQ提供的非常重要的一个特性,在4.x版本之后开源,可以利用事务消息轻松地实现分布式事务。本...

网友评论

      本文标题:什么是事务、半事务消息?怎么实现的?

      本文链接:https://www.haomeiwen.com/subject/avbaprtx.html