开发者社区> 问答> 正文

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 78 0
1 条回答
写回答
取消 提交回答
  • 如果是单topic单分区模式,可以有begin/end的事务消息发送,针对多队列或者多topic模式,事务信息就不好处理

    原回答者GitHub用户agapple

    2023-05-04 18:04:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载