一、RocketMQ 事务消息简介
事务消息是指应用在发送消息时,需要确保消息的可靠性和一致性。RocketMQ 事务消息支持半事务消息和全局事务消息,可以满足在不同场景下的需求。
二、RocketMQ 事务消息实现方式:半事务消息
半事务消息是指应用发送消息到 MQ 时,MQ 会返回发送成功的结果,但不会立即将消息投递给消费者。此时,应用可以执行本地事务。如果本地事务执行成功,则通知 MQ 提交事务,MQ 会将消息投递给消费者;如果本地事务执行失败,则通知 MQ 回滚事务,MQ 会删除该消息。
以下是半事务消息的实现流程:
(1)发送半事务消息
(2)执行本地事务
(3)根据本地事务执行结果,提交或回滚事务

三、RocketMQ 事务消息应用场景
订单支付场景
在订单支付场景中,当用户支付成功后,需要通知订单系统修改订单状态,同时通知库存系统扣减库存。此时,可以使用 RocketMQ 事务消息确保订单状态和库存的一致性。
跨系统数据同步场景
在某些业务场景中,需要将数据从一个系统同步到另一个系统。为了保证数据的一致性,可以使用 RocketMQ 事务消息进行数据同步。
以下是一些具体应用场景:
(1)用户注册后,同步用户信息到其他业务系统
(2)用户修改个人信息,同步更新其他业务系统中的数据
四、常见面试题及答案
RocketMQ 事务消息有哪些类型?
答:RocketMQ 事务消息分为半事务消息和全局事务消息。
请简述 RocketMQ 半事务消息的实现流程。
答:发送半事务消息 -> 执行本地事务 -> 根据本地事务执行结果,提交或回滚事务。
RocketMQ 事务消息在哪些场景下使用?
答:RocketMQ 事务消息常用于订单支付、跨系统数据同步等场景。
RocketMQ 事务消息与普通消息有什么区别?
答:事务消息相较于普通消息,多了事务提交和回滚的流程,能更好地保证消息的可靠性和一致性。




