在使用中发现canal发送kafka消息格式是一条sql产生的数据变更会发送一条消息。在有存储过程或定时任务跑批处理时,会产生大量日志,无论怎么调试kafka缓存大小都无法满足,会导致canal卡死,也没有错误日志。在切换到maxwell后,发现依赖的mysql-binlog-connector-java已经很久没有维护,而且maxwell缺少高 可用模式,而且稳定性不太好。
参照maxwell数据消息结构,自定义了SimpleFlatMessage,按记录将每一条sql日志拆分。也就是将原来一条sql发送一条kafka消息改为一条记录变更发送一条kafka消息。这样解决了卡死问题
原提问者GitHub用户shipstoneGhub
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。