news 2026/2/5 8:45:16

RocketMQ的事务消息是如何实现的?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RocketMQ的事务消息是如何实现的?

RocketMQ 通过 TransactionListener 接口实现事务消息机制,其工作流程如下:

  1. 发送半消息
    首先向 Broker 发送一条半消息(状态标记为"prepared"),该消息会被存储在事务日志中但暂不可消费。

  2. 执行本地事务
    半消息发送成功后,应用程序执行本地事务逻辑并确定最终状态。

  3. 提交/回滚

    • 本地事务成功:通知 Broker 提交消息(状态改为"committed"),消息转为可消费状态
    • 本地事务失败:通知 Broker 回滚消息(状态改为"rollback"),消息会被立即删除

异常处理机制

未收到确认指令时
若 Broker 未及时收到 COMMIT/ROLLBACK:

  1. 主动发起事务状态检查
  2. 应用程序通过回调返回处理结果
  3. 若超时未响应则标记为"UNKNOW"状态
  4. 最终过期后自动回滚

半消息发送失败
由于业务操作在半消息之后执行:

  • 失败时业务尚未执行,不存在一致性问题
  • 可通过重试机制解决(自主重试或依赖上游重试)

设计优势

相比"先提交事务再发消息"的传统方案,事务消息解决了:

  1. 最终一致性
    即使 COMMIT 消息发送失败,MQ 仍能通过半消息状态反查确保最终一致
  2. 防丢失
    本地事务提交与消息投递形成原子操作,避免"事务成功但消息丢失"的情况
  3. 状态可追踪
    通过 prepared/committed/rollback 状态机明确消息生命周期
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/4 11:23:41

医疗知识问答系统搭建实录——使用Kotaemon全过程

医疗知识问答系统搭建实录——使用Kotaemon全过程 在三甲医院的智能导诊台前,一位老年患者正皱着眉头询问:“我有糖尿病,能吃阿胶吗?”传统客服机器人只能机械回复“请咨询医生”,而新一代系统却能立刻调取《中国2型糖…

作者头像 李华
网站建设 2026/2/3 6:08:30

内网穿透工具新选择:这款免费工具如何让远程访问变得简单高效

官网:财运到免费内网穿透 01 免费服务的基础功能 许多内网穿透工具对核心功能收费,而财运到内网穿透却提供了完全免费的HTTP(S)、TCP和UDP协议支持。这使得个人开发者无需预算就能实现本地服务的远程访问。 02 零成本享受的特色功能 与传统免费工具简…

作者头像 李华
网站建设 2026/2/3 19:59:20

有多少制造企业上了ERP和MES,真正能做到批次管理和质量追溯?

生产制造企业对于管理的要求越来越高,ERP系统和MES系统是企业管理提升必不可少的管理工具,早已成为企业提升管理水平的标配。在客户提出ERP系统和MES系统的需求中,批次管理和追溯功能已经是“必选项”,需求重叠度达到90%以上。从技…

作者头像 李华
网站建设 2026/2/5 6:41:39

EmotiVoice应用于机场/车站广播系统改造

EmotiVoice应用于机场/车站广播系统改造 在大型交通枢纽的嘈杂环境中,一条关键信息能否被旅客准确接收,往往不只取决于内容本身,更与语音的语气、节奏和情感息息相关。你是否曾在机场听到机械感十足的“CA1835航班开始登机”,却几…

作者头像 李华
网站建设 2026/2/4 7:05:07

Kotaemon能否用于图书馆检索?公共文化服务创新

Kotaemon能否用于图书馆检索?公共文化服务创新 在智能问答系统日益普及的今天,图书馆这类传统知识服务机构正面临一个根本性问题:如何让沉睡在书架与数据库中的海量文献资源,真正“活”起来?用户不再满足于输入几个关键…

作者头像 李华
网站建设 2026/2/4 1:58:04

Fun-ASR-Nano深度评测

0. 研究背景 Fun-ASR-Nano-2512 是由阿里巴巴旗下的通义实验室开源的语音识别模型,通义实验室之前还开源了 SenseVoiceSmall 和 Paraformer 模型,这篇文章使用三种模型对多种方言,以及真实电话录音进行对比测试,在开源的数据集中…

作者头像 李华