RocketMQ事务消息的三种状态

1. ROLLBACK_MESSAGE:回滚事务

2. COMMIT_MESSAGE: 提交事务

3. UNKNOW: broker会定时的回查Producer消息状态,直到彻底成功或失败。

当executeLocalTransaction方法返回ROLLBACK_MESSAGE时,表示直接回滚事务,当返回COMMIT_MESSAGE提交事务

当返回UNKNOW时,Broker会在一段时间之后回查checkLocalTransaction,根据checkLocalTransaction返回状态执行事务的操作(回滚或提交),
 
如示例中,当返回ROLLBACK_MESSAGE时消费者不会收到消息,且不会调用回查函数,当返回COMMIT_MESSAGE时事务提交,消费者收到消息,当返回UNKNOW时,在一段时间之后调用回查函数,并根据status判断返回提交或回滚状态,返回提交状态的消息将会被消费者消费,所以此时消费者可以消费部分消息

 

你可能感兴趣的:(RocketMQ事务消息的三种状态)