如何打开这个新特性:TiCDC 同步数据到 Kafka,吞吐从 4000 行每秒提升到 35000 行每秒,复制延迟降低到 2 秒。

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.0
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】将集群由v5.4.0升级到v6.5.0版本后,发现ticdc同步任务到下游kafka时,性能方面并未得到提升。遇到有大表的批量事务操作时,就会被卡住,同步到下游kafka变得很慢。

想问一下,提高这个吞吐,是需要打开或配置哪些参数吗?谢谢!
【资源配置】
【附件:截图/日志/监控】

https://github.com/pingcap/docs/blob/master/ticdc/ticdc-sink-to-kafka.md

参考这个官方的配置,没有找到相关的这个配置参数

要打开 TiCDC 同步数据到 Kafka 的新特性,您需要按照以下步骤进行操作:

  1. 确保您的 TiCDC 版本是 v4.0.9 或更高版本,因为这个新特性是在这个版本中引入的。
  2. 按照 TiCDC 官方文档中的说明,创建一个 changefeed,将数据同步到 Kafka 中。具体操作步骤可以参考 Replicate Data to Kafka
  3. 在创建 changefeed 时,您可以通过配置 sink-uri 参数来控制 TiCDC 同步数据到 Kafka 的吞吐量。具体来说,您可以在 sink-uri 参数中添加以下配置项:
kafka.producer.config.bootstrap.servers=<kafka-broker-list>
kafka.producer.config.max.request.size=<max-request-size>

其中,<kafka-broker-list> 是您 Kafka 集群中的 broker 列表,<max-request-size> 是单个 Kafka 消息的最大大小。通过适当调整这两个参数,您可以提高 TiCDC 同步数据到 Kafka 的吞吐量。

需要注意的是,如果您在使用 TiCDC 同步数据到 Kafka 时遇到了问题,可以参考 Troubleshoot TiCDC 中的内容进行故障排除。

1 个赞

为啥,v6.5.0版本这个参数默认大小设置为10MB。这个值不是越大吞吐率越高吗?

配置文件中添加:
kafka.producer.config.max.request.size=1048576

再重新更新任务时,报错:
Error: component TiCDC changefeed's config file ./kafka-to-tianjin-pro-01.toml contained unknown configuration options: sink.kafka.producer.config.max.request.size

6.5kafka sink效率高是因为之前是一个sink写到下游,会拖慢整个pipeline,现在默认是多个并发写入,你可以直接试下效率

1 个赞

ticdc 在 6.5 中对 kafka sink 做了很多性能优化的工作,这些优化不需要配打开。

关于你的报错, 是因为这些参数现阶段要写到 sink-uri 中, 如 --sink-urk “kafka://127.0.0.1:9092/test?max-message-bytes=671088&procotol=canal-json”
正在推进在配置文件中直接支持这些参数

1 个赞

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。