对于官方Drainer示例:Go语言,kafka读取binlog、解析并转SQL的几点疑惑

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:Release Version:v2.1.8
  • 【问题描述】:kafka读取binlog、解析并转SQL的几点疑惑 由于业务需求:将tidb数据同步到oracle。我参考官方的tidb-binlog示例代码,借鉴了将读取kafka binlog解析转化为SQL部分源码,并nopm get了相关的依赖,启动也没问题,但考虑到以下问题: 1.示例中的kafka消费模式是什么模式,没有consumer-group的概念,部署多节点会重复消费吗?

2.对于offset为-1,应该是取最新的offset吧,但是commitTS配置为0,这两者有冲突吗?怎么获取最新的commitTS?

由于局限性,dev是mysql,uat与prod是tidb,从tidb数据同步oralce方案没落地,本人主要从事java开发,golang只是涉猎,望各位大佬路过时留下宝贵意见,谢谢

kafka消费模式是根据用户自己定义的,我们不涉及 kafka 的参数修改。binlog 的 drainer 组建默认会将数据推给 kafka,然后自己记录一个 checkpoint 同步位置。你说的这种情况,如果是kafka 异常比如断电,或者下游异常的话那是可能出现数据不一致的情况,kafka 不管commitTS 只管接受 drainer 推给他的消息。