开发者社区 问答 正文

CanalRocketMQProducer投递的消息过滤了TRANSACTIONBEGIN和TRAN

在更新目标mysql的时候,我的方案是使用GTID来避免重复插入并避免数据同步回环。因此需要识别TRANSACTIONBEGIN | ROWDATA |...| ROWDATA | TRANSACTIONEND 这样的数据流,并在TRANSACTIONEND的时候统一将上述一批rowdatas按同一个gtid来更新目标mysql。

但通过阅读源码发现CanalRocketMQProducer会将TRANSACTIONBEGIN和TRANSACTIONEND相关event直接过滤了。

这是出于什么考虑呢? 毕竟rocketmq是支持顺序消费的。

原提问者GitHub用户lueying

展开
收起
数据大拿 2023-05-04 10:22:37 92 分享 版权
1 条回答
写回答
取消 提交回答
  • 如果是单topic单分区模式,可以有begin/end的事务消息发送,针对多队列或者多topic模式,事务信息就不好处理

    原回答者GitHub用户agapple

    2023-05-04 18:04:49
    赞同 展开评论