开发者社区> 问答> 正文

canal1.1.2 批量同步数据到kafka速度很慢

环境信息

canal version1 1.1.2 mysql version 5.7

问题描述

我配置的canal直接同步数据到kafka里存储到kafka里的数据是json格式的,发现数据同步的很慢写入到kafka里的速度大概是7M/S,差不多是400条信心每秒。 看到官方文档上说canal 1.0.26经过优化之后的性能,从业务binlog入库到canal client拿到数据,基本可以达到10~20w的差不多也是10M/S,我现在用的是canal1.1.2的版本,我这种情况瓶颈是不是canal-client到kafka这一块呀

原提问者GitHub用户lijif

展开
收起
古拉古拉 2023-05-08 13:41:22 351 0
2 条回答
写回答
取消 提交回答
  • 写入MQ考虑binlog保序性,是一个串行、同步刷盘的写入行为,可以考虑做partition散列提升写入效率

    原回答者GitHub用户agapple

    2023-05-09 17:46:34
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    根据您的描述,使用Canal 1.1.2将MySQL数据同步到Kafka时,同步速度非常慢,大约只能达到每秒400条信息。您发现Canal 1.0.26通过优化后的性能可以达到10-20万条数据的入库,大约每秒10M/S。您怀疑同步速度受到Canal-client到Kafka这一块的限制。

    在Canal 1.1.2中,同步性能的瓶颈可能有很多,例如Canal Server的配置、网络带宽、Kafka的配置等。为了解决这个问题,建议您按照以下步骤进行排查:

    确认Canal Server的配置是否正确,并且Canal Server能够正确地解析MySQL的binlog。您可以查看Canal Server的日志文件以查看是否存在解析binlog失败的异常信息。

    确认Canal Client的配置是否正确,并且与Canal Server的版本兼容。如果版本不兼容,可能会导致Canal Client无法正确地解析Canal Server的数据结构,从而引发异常。建议您尝试升级Canal Client的版本,并重新进行配置和测试。

    确认Kafka的配置是否正确,并且Kafka的性能优化得当。您可以查看Kafka的日志文件以查看是否存在性能瓶颈的异常信息。如果性能瓶颈在Kafka中,请尝试优化Kafka的配置,例如增加Kafka的分区、调整Kafka的批量大小等。

    确认网络带宽是否足够,并且网络延迟不会影响同步速度。如果网络带宽不足或延迟过高,可能会导致同步速度变慢。

    尝试调整Canal-Adapter的配置,例如调整批量大小、调整线程数等。这些参数可能会影响数据的同步速度。

    如果您无法解决问题,建议您提供更多的信息,例如异常堆栈信息、Canal-Client的配置文件、Kafka的配置文件等,以便我们更好地帮助您解决问题。

    2023-05-08 13:51:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载