[CDC:ErrKafkaAsyncSendMessage]kafka async send message failed: kafka: Failed to produce message to topic brt_migration: kafka server: The request included message batch larger than the configured segment size on the server

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.4.0
【TICDC版本】v6.5.8
ticdc下游是阿里云kafka,kafka最大消息大小设置为40MB。

toml文件:
memory-quota = 1073741824
[filter]
rules = [“brt.*”]

cdc启动命令:
tiup cdc cli changefeed create \ –pd=xx \ –sink-uri=“kafka://xxxx:9092/brt_migration?protocol=canal-json&partition-num=1&max-message-bytes=36700160” \ –config=./test.toml \ –changefeed-id=“brt-migration-task”

【遇到的问题:问题现象及影响】
出现报错:
tidb-bot@can1-ti-monitor-prod-001:/home/ubuntu$ tiup cdc cli changefeed list --pd=http://10.10.0.55:2379,http://10.10.101.73:2379,http://10.64.115.36:2379
tiup is checking updates for component cdc …
Starting component cdc: /home/tidb-bot/.tiup/components/cdc/v5.4.0/cdc /home/tidb-bot/.tiup/components/cdc/v5.4.0/cdc cli changefeed list --pd=http://10.10.0.55:2379,http://10.10.101.73:2379,http://10.64.115.36:2379
[
{
“id”: “brt-migration-task”,
“namespace”: “default”,
“summary”: {
“state”: “warning”,
“tso”: 461431755300929576,
“checkpoint”: “2025-10-11 22:40:55.219”,
“error”: {
“time”: “2025-10-12T03:55:42.189820708Z”,
“addr”: “10.10.0.55:8300”,
“code”: “CDC:ErrKafkaAsyncSendMessage”,
“message”: “[CDC:ErrKafkaAsyncSendMessage]kafka async send message failed: kafka: Failed to produce message to topic brt_migration: kafka server: The request included message batch larger than the configured segment size on the server”
}
}
}
]

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

你要在 kafka server 端配置 message.max.bytes

ticdc启动任务的max-message-bytes=36700160(35MB), kafka server 端已经设置为40MB,但我不知道ticdc发送的message batch究竟有多大。

目前看起来是 ticdc 本身的协议问题,kafka 协议中会把多条消息组装成一个 batch 进行发送和存储,目前服务端有个限制的单个 batch 里的消息条数不能太多,kafka后台查询是大于了 4w 条了, ticdc v6.5.8 的cannal-json协议支持调整参数嘛?

max-batch-size https://docs.pingcap.com/zh/tidb/stable/ticdc-sink-to-kafka/ 这个只会限制 open protocol。看下是不是跟 topic 有关系吧,确定 brt_migration 这个 topic 的大小是 40 MB吗?

阿里云的message.max.bytes默认值是1M,需要改大

这个设置有什么说法吗

忽略这个参数配置,你这个配置没问题,要确认下 kafka server 段的配置是否设置成功

改字节数吧.

这一部分好像跟tidb关系不大吧,kafka那边有配置没有跟tidb的cdc兼容起来啊

TiCDC 向 Kafka 同步数据时遇到的消息大小超限

感觉是kafka的某些参数限制