rocketmq事务消息如何实现的
时间: 2023-03-06 22:44:23 浏览: 135
spingboot-rocketmq事务消息
RocketMQ事务消息的实现基于两阶段提交协议。其具体实现步骤如下:
1. 消息生产者发送带有“Half Message”的消息给消息代理服务器。
2. 消息代理服务器接收到“Half Message”后,会暂存消息,并向消息生产者返回“Half Message”的确认消息。
3. 消息生产者收到“Half Message”确认消息后,执行本地事务,并根据事务执行结果决定是向消息代理服务器发送“commit”消息还是“rollback”消息。
4. 如果消息生产者向消息代理服务器发送的是“commit”消息,则消息代理服务器会将暂存的“Half Message”转化为正式消息,向订阅者发送消息。
5. 如果消息生产者向消息代理服务器发送的是“rollback”消息,则消息代理服务器会删除之前暂存的“Half Message”,事务消息发送失败。
通过上述的两阶段提交协议,RocketMQ事务消息能够保证消息发送的可靠性,并且能够在出现异常情况时保证事务的一致性。
阅读全文