Ticdc同步到kafka数据报错

【 TiDB 使用环境】生产环境 /测试

【 TiDB 版本】v5.1.0

【遇到的问题】1、Ticdc同步到kafka数据报如下错误(图一),但是kafka是可以接受到数据的(同样创建的二个任务,一个正常,一个有异常),但是运行一段时间后报错信息如图二
图一:

图二:

2、创建的同步任务同步到6个分区,结果kafka端接收的数据只进一个分区,不知是不是命令有问题?还是配置文件需要加worker-num = 16
tiup ctl:v5.1.0 cdc changefeed create --pd=“http://x.x.x.x:2379” --sink-uri=“kafka://y.y.y.y:9092,y.y.y.y:9092,y.y.y.y:9092/gotion_gdmo_battery_produce_result_data?&partition-num=6&protocol=canal-json” --changefeed-id=“produce-kafka-changefeed” --config cdc-config_produce.toml

tiup ctl:v5.1.0 cdc changefeed create --pd=“http://x.x.x.x:2379” --sink-uri=“kafka://y.y.y.y:9092,y.y.y.y:9092,y.y.y.y:9092/gotion_gdmo_battery_produce_in_result_data?&partition-num=6&protocol=canal-json” --changefeed-id=“producein-kafka-changefeed” --config cdc-config_produce_in.toml

配置文件:
[tidb@formal-tiup ~]$ cat cdc-config_produce.toml
[filter]
rules = [‘xx.produ…’]

日志:

问题1
图一就只能看出消息推送失败…
图二是 网络连接超时了,这个要检查下 问题发生的时刻,网络是否存在问题,或者kafka 的服务是否正常

问题2
kafka 推送的规则,是按照配置过程来处理的




https://docs.pingcap.com/zh/tidb/stable/manage-ticdc#自定义-kafka-sink-的-topic-和-partition-的分发规则

建议检查分发规则,是否按照文档上的描述来配置的,另外是否符合场景的需求

1 个赞

我把推送规则修改为如下报错了,我的版本是5.1,按照6.1尝试配置。

5.1的官方文档没有看到能写topic信息,不知是不是不支持?
TiCDC 运维操作及任务管理 | PingCAP Docs

5.1 的话,只能配置多个 sink 来分解了,指向不同的 topic

topic 分发配置 6.x 之后才支持…

1 个赞

我们需要的业务是将数据分发给topic的不同分区,不是分发给多个topic.

那应该可以满足你的需求的,不过特性对于不同的处理过程会有不同的表现和结果

可以参考下

1 个赞

后来经过反复测试,目前cdc同步正常,主要是配置文件书写有问题,5.1.0正确配置如下: