7.2.1 生产者发送事务消息和执行本地事务
事务消息的发送过程分为两个阶段:第一阶段,发送事务消息;第二阶段,发送endTransaction消息。
Broker发送事务消息的过程如图7-1所示。
事务消息的发送过程代码可以参考 2.3 节,这里主要讲解发送过程 的 实 现 类
org.apache.rocketmq.client.producer.TransactionMQProducer 。 该 类继承于DefaultMQProducer,不仅能发送事务消息,还能发送其他消息。虽然4.2.0版本有事务消息代码,但实际是4.3.0版本才全面支持事务消息。
接下来,笔者将基于 RocketMQ 4.3.0 来讲解事务消息机制。
TransactionMQProducer的核心属性和方法如下。
transactionListener:事务监听器,主要功能是执行本地事务和执行事务回查。事务监 听 器 包 含 executeLocalTransaction()和 checkLocalTransaction ( ) 两 个 方 法 。
executeLocalTransaction ( ) 方 法 执 行 本 地 事 务 ,
