【TiDB 使用环境】测试
TiCDC发送到Kafka的消息是否可以指定key?
经过测试,当使用 partition 为 index-value 时,在消费端监听到的kafka消息也没有传回key ,有什么方式可以设置消息key吗?
https://docs.pingcap.com/zh/tidb/stable/ticdc-sink-to-kafka/#partition-分发器
没找到什么设置key的,但是找到了一些设置dispatcher的文章。
看上去你的问题是没有回传kay,这就有点奇怪了。
我设置的partition = “index-value”,但是消费kafka消息的时候发现没有key;我怀疑是没有设置key,得看看源码才行。消费的时候我看是指定了partition,原则上设置了key会走 kafka 自己的分发策略,不知道是不是出于这方面的考虑,没有设置key,而是根据ticdc自己的策略指定partition。
有没有 key 跟协议有关系,你用的什么协议?
canal-json
建议直接在github上引用,截图看不到是什么文件,那一行。也不知道tag对不对。
我的经验是,一般tag和你用的版本能对上,从代码到实现不应该有出入。
还有就是ticdc这个组件最近有了单独的代码库。
https://github.com/pingcap/ticdc
这个就是新的代码库。9.0之后用这个。
老的代码库在
https://github.com/pingcap/tiflow
和dm的代码在一起。9.0之前的版本在这个里面,用tag切换到版本就是对应的代码了。
canal-json 的消息是没有 key 的,只有 value。https://github.com/pingcap/tiflow/blob/b144e40569a40e84b8338bde6287346bc3644e49/pkg/sink/codec/canal/canal_encoder.go#L119C16-L119C22
了解,感谢。我的版本8.5.1,应该在老代码库里
点赞 :+1
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。



