V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ljzxloaf
V2EX  ›  程序员

rocketmq 怎么实现事务消息

  •  
  •   ljzxloaf · 14 小时 35 分钟前 · 977 次点击
    之前一直用的 qmq ,自带本地消息表,事务消息会与本地消息一起提交,对业务基本零侵入。


    看了下 rocketmq 的事务消息示例

    发送消息

    https://github.com/apache/rocketmq-spring/blob/1be808da74764128e404ae33cbf5e97c248aa207/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/ProducerApplication.java#L209

    本地事务、checkState

    https://github.com/apache/rocketmq-spring/blob/1be808da74764128e404ae33cbf5e97c248aa207/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/ProducerApplication.java#L246

    这也太别扭了吧,分割业务逻辑不说,也要多写很多代码,甚至还要改造业务表。

    不知道是不是我使用的姿势不对,rmq 有点盛名之下其实难副的感觉?
    第 1 条附言  ·  10 小时 0 分钟前
    大家使用 rocketmq 难道不用考虑消息发送失败的情况吗...
    第 2 条附言  ·  9 小时 47 分钟前
    FIX: "事务消息会与本地消息一起提交" => "事务消息会与本地事务一起提交"
    5 条回复    2025-02-06 17:46:08 +08:00
    EMMMMMMMMM
        1
    EMMMMMMMMM  
       13 小时 50 分钟前 via Android
    你是去哪儿的?
    mark2025
        2
    mark2025  
       13 小时 3 分钟前
    如果数据库是 pgsql 可以考虑 pgmq ( https://tembo-io.github.io/pgmq/) ,这是 pg 的一个插件,用 pg 来实现的轻量级消息队列。
    业务操作和队列消息可以共用事务,确保业务操作与消息的一致性。
    jorneyr
        3
    jorneyr  
       12 小时 14 分钟前
    RocketMQ 的分布式事务需要写代码判断事务是否提交,事务里的每个业务操作是否完成都需要调用方向 RocketMQ 确认的。
    securityCoding
        4
    securityCoding  
       11 小时 0 分钟前
    没理解为啥别扭,异构系统你要的事务不就是业务本身?
    1ffree
        5
    1ffree  
       8 小时 32 分钟前
    怎么理解 本地消息表 && 对业务基本零侵入? 请教下咋实现的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:18 · PVG 02:18 · LAX 10:18 · JFK 13:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.