cdc 写入kafka 报错write: connection reset by peer

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.3 ,下游kafka 版本 v2.4.2
【复现路径】 partition 模式使用的index-value ,运行几天后报错
【遇到的问题:问题现象及影响】
tidb 集群的数据通过cdc 写入到kafka 中,配置为

case-sensitive = true
enable-old-value = true

[filter]
ignore-txn-start-ts = [1, 2]
rules = ['study_info.*','rtquery.*']
[mounter]
worker-num = 8
[sink]
dispatchers = [
    {matcher = ['study_info.*'], partition = "index-value"},
]
protocol = "canal-json"

运行了一段时间后同步中断,报错主要为

"[CDC:ErrKafkaAsyncSendMessage]kafka async send message failed: kafka: Failed to produce message to topic tidb_rtquery_new: write tcp xxx.129.15:38098-\\u003exxxx.150.36:9095: write: connection reset by peer\"}

xxx.129.15 是我们cdc 节点, xxx.150.36是腾讯云的kafka 地址。

以上问题复现以及测试:
1、如果是将partition 改成table ,那么同步就是正常的,不会有报错
2、如果将partition 再改回index-value ,就又会报错

问题:
在创建cdc 任务到下游kafka 的时候使用的地址是9092 的端口,为啥在index-value模式下就会出现异常。
以上测试已做过多次,改成table 模式就正常同步,改成index-value 模式就报错。
–sink-uri=“kafka://xxx.150.36:9092/tidb_rtquery_new?protocol=canal-json&partition-num=6&max-message-bytes=10485760&eplication-factor=1”

以下是测试过程中的报错。之前以为是tidb 版本的问题,今天早上从6.5.1升级到了6.5.3 还是同样的问题


2024-02-01 补充:
在腾旭云的服务端发现报错日志如下


腾讯云研发老师建议在cdc 侧配置参数send.buffer.bytes调小些,小于16kb。但是在文档中似乎未暴露相关参数,是否有其他方法能绕过?

kafka版本是多少呢

版本是多少

kafka 版本是2.4.2 ,标题里有注明

试试调大socket.request.max.bytes,这个kafka侧配置

kafka 是疼讯云的,他们不给改配置 :slightly_frowning_face:

版本不对,经常遇到

版本的问题跟他们确认过:v2.4.1 ,我创建的语句如下
–sink-uri="kafka://xxxxxx:9092/tidb_xxxx?protocol=canal-json&kafka-version=2.4.1&


请问你们是如何解决这个问题的 ?

replication 是不是拼错了?

什么版本呢

版本不对吧

@是我的海 大佬,这个问题解决了吗,我们用腾讯云ckafka也碰到了这个问题

image

这种大概率是cdc 用的kafka驱动不兼容导致的,把配置文件里驱动改成 sink-v2 试下?看能不能成功。

感觉跟这个贴子比较像,是不是因为改为index-value后,同步效率有了很大提升,导致触发腾讯云 Ckafka 的限流策略了?

看这里描述也是几天后才报错,说明正常是没有问题的,所以真的有很大概率是限流导致的,问一下腾讯云能不能调大限流?