news 2026/7/1 18:12:00

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/7/1 15:43:25

ESP分区

电脑中的ESP分区是干什么的?UEFI(统一可扩展固件接口)与GPT(GUID分区表)的组合已成为现代计算机系统安装和启动的主流方式。然而,在这种新的安装方式下,一个名为“ESP分区”的组件显得尤为重要&…

作者头像 李华
网站建设 2026/7/1 8:44:02

规避交付风险,驱动生产效率:环形导轨选型核心逻辑与落地实施指南

摘要: 在自动化装配线、检测站及精密制造单元中,环形导轨系统已成为实现高效循环输送的关键基础设施。然而,一个常见的误区是仅关注导轨本身的品牌与价格,忽略了从设计源头到现场调试的全链路风险。本文旨在系统性地拆解环形导轨的…

作者头像 李华
网站建设 2026/7/1 12:50:00

vue3+vite mock引入使用

1、安装对应的包 npm install vite-plugin-mock mockjs -D2、配置 Vite vite.config.js import { defineConfig } from vite import vue from vitejs/plugin-vue import { viteMockServe } from vite-plugin-mockexport default defineConfig({plugins: [vue(),viteMockServe({…

作者头像 李华
网站建设 2026/7/1 21:21:34

Kotaemon如何处理超长文档?分块策略智能选择

Kotaemon如何处理超长文档?分块策略智能选择 在构建智能问答系统时,我们常常面临一个看似简单却影响深远的问题:一份长达上百页的技术手册、法律合同或企业制度文件,该如何喂给大语言模型? 毕竟,再强大的LL…

作者头像 李华
网站建设 2026/7/1 23:21:17

Kotaemon KV Cache复用技术解析:节省内存开销

Kotaemon KV Cache复用技术解析:节省内存开销 在构建企业级智能对话系统时,一个看似不起眼却影响深远的问题浮出水面:为什么用户问完第一个问题后,后续追问的响应速度越来越慢?为什么部署一个7B参数的模型需要动辄24G…

作者头像 李华
网站建设 2026/7/1 12:49:58

Kotaemon日志系统优化:问题排查从未如此简单

Kotaemon日志系统优化:问题排查从未如此简单 在构建智能对话系统时,你是否经历过这样的场景?用户反馈答案质量下降,但翻遍日志却找不到线索;线上请求突然变慢,却无法判断是检索、生成还是工具调用出了问题&…

作者头像 李华