开发者社区 问答 正文

存储过程产生日志过大问题处理

在使用中发现canal发送kafka消息格式是一条sql产生的数据变更会发送一条消息。在有存储过程或定时任务跑批处理时,会产生大量日志,无论怎么调试kafka缓存大小都无法满足,会导致canal卡死,也没有错误日志。在切换到maxwell后,发现依赖的mysql-binlog-connector-java已经很久没有维护,而且maxwell缺少高 可用模式,而且稳定性不太好。

参照maxwell数据消息结构,自定义了SimpleFlatMessage,按记录将每一条sql日志拆分。也就是将原来一条sql发送一条kafka消息改为一条记录变更发送一条kafka消息。这样解决了卡死问题

原提问者GitHub用户shipstoneGhub

展开
收起
古拉古拉 2023-05-08 15:11:36 100 分享 版权
1 条回答
写回答
取消 提交回答
  • 可以尝试调低canal的batchSize参数

    原回答者GitHub用户agapple

    2023-05-09 18:07:54
    赞同 展开评论