RocketMQ:事务性消息学习笔记

RocketMQ的事务性消息实现两阶段提交,确保消息发送与本地事务的原子性操作。使用时有特定限制,如不支持定时和批处理,且超过一定次数未确认的消息会被丢弃。事务状态包括提交、回滚和中间状态。发送事务消息需创建事务producer并实现接口,本地事务执行后返回状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是事务性消息(transactional message)?

可以认为是一个确保分布式系统中的最终一致性的两阶段提交(two-phase commit )的消息实现。
事务性消息确保本地事务的执行和消息的发送是一个原子性操作。

关于two-phase commit:https://blog.youkuaiyun.com/lengxiao1993/article/details/88290514

rocketmq事务消息是发生在Producer和Broker之间,是二阶段提交。
图源:https://www.cnblogs.com/xuwc/p/9034029.html

生产者,第一个阶段确保消息发送成功了;
第二个阶段执行本地操作,根据本地操作的执行结果来决定发送的那条消息是否需要消费或回滚。

使用限制

  1. 事务性消息不支持定时和批处理
  2. 为了避免单个消息被check多次从而引起大部分队列消息的堆积,我们限制单个消息的check次数默认为15次,用户可以通过配置transactionCheckMax参数更改。如果一个消息checked超过了“transactionCheckMax”,这个消息就会被丢弃,同时默认打印一条error log。用户可以通过重写AbstractTr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值