MST

星途 面试题库

面试题:消息队列RocketMQ分布式事务解决方案之中等难度题

在RocketMQ分布式事务解决方案中,TransactionListener接口的核心方法有哪些,它们分别起什么作用?
41.9万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试
  1. executeLocalTransaction(Message msg, Object arg)
    • 作用:执行本地事务。当消息发送到MQ后,MQ会回调此方法来执行本地业务事务。msg是待发送的消息,arg是在发送事务消息时传入的自定义参数。此方法需要开发者根据业务逻辑实现本地事务的执行,并返回一个LocalTransactionState枚举值,用于表示本地事务的执行状态,如LocalTransactionState.COMMIT_MESSAGE(提交消息)、LocalTransactionState.ROLLBACK_MESSAGE(回滚消息)、LocalTransactionState.UNKNOW(未知状态,MQ后续会进行回查)。
  2. checkLocalTransaction(MessageExt msg)
    • 作用:检查本地事务状态。当executeLocalTransaction方法返回LocalTransactionState.UNKNOW时,MQ会定时回调此方法来检查本地事务的最终状态。msg是待检查事务状态的消息扩展对象,包含了更多的消息属性信息。开发者在这个方法中需要根据消息的相关信息(如消息ID等)去查询本地事务执行的最终结果,并返回LocalTransactionState枚举值,告知MQ本地事务最终是提交还是回滚。