【TiDB 版本】v4.0.6
【TiCDC 版本】v4.0.9
问题描述:
这边同步任务将多个库以canal-json的格式往kafka同步数据,
message.max.bytes 配置为100M,创建同步时报错:
"message": "[CDC:ErrKafkaAsyncSendMessage]kafka: Failed to produce message to topic dw_tidb_binlog_online: kafka server: Message was too large, server rejected it to avoid allocation error."
根据下面理解,单条消息最大为4M,100M理论来讲是够的,为什么还会报错?
下面的512M和4M可以详细解释一下吗?
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-ticdc#ticdc-把数据同步到-kafka-时能在-tidb-中控制单条消息大小的上限吗
TiCDC 把数据同步到 Kafka 时,能在 TiDB 中控制单条消息大小的上限吗?
不能,目前 TiCDC 控制了向 Kafka 发送的消息批量的大小最大为 512 MB,其中单个消息的大小最大为 4 MB。
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-ticdc#为什么-ticdc-到-kafka-的同步任务延时越来越大
- 请参考 如何查看 TiCDC 同步任务的状态? 检查下同步任务的状态是否正常。
- 请适当调整 Kafka 的以下参数:
-
message.max.bytes
,将 Kafka 的server.properties
中该参数调大到1073741824
(1 GB)。 -
replica.fetch.max.bytes
,将 Kafka 的server.properties
中该参数调大到1073741824
(1 GB)。 -
fetch.message.max.bytes
,适当调大consumer.properties
中该参数,确保大于message.max.bytes
。
-