开发者社区> 问答> 正文

MYSQL数据同步至kafka,出现消息限制大小,该怎样处理?

问题描述:

对数据库有批量操作(上千条数据更新),canal解析的单条数据大。 发送到kafka时,出现kafka的消息有限制。

调整过canal、kafka的消息限制到2M,还是有问题。 出现这样的情况,该怎样解决?

原提问者GitHub用户cuishixu

展开
收起
山海行 2023-04-27 11:13:09 117 0
2 条回答
写回答
取消 提交回答
  • 1、调大kafka的最大包大小

    2、减少canal-server的批次大小

    3、过滤大字段

    原回答者GitHub用户agapple

    2023-04-27 20:55:16
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    出现这种情况,可以考虑以下两个方案:

    分批发送 将批量操作的数据分批发送到kafka,每次发送一定数量的数据。这样可以避免单条数据过大导致kafka消息限制大小的问题。可以考虑使用批量操作的分页功能,每次取出一定数量的数据进行发送。

    压缩消息 可以使用压缩算法对消息进行压缩,减小消息的大小。kafka支持多种压缩算法,可以根据具体情况选择合适的压缩算法进行压缩。在发送消息时,需要指定使用的压缩算法。

    以上两种方案可以结合使用,先将数据分批发送,然后对每批数据进行压缩,再发送到kafka。这样可以进一步减小消息的大小,提高发送效率。

    2023-04-27 14:53:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像