简介
Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它的常见应用场景有ETL、维护缓存、收集表级别的dml指标、增量到搜索引擎、数据分区迁移、切库binlog回滚方案等。
踩到的坑
Maxwell是不支持create、drop存储过程的。如果SQL语句仅仅是create 、drop存储过程之类的,maxwell会把这类SQL过滤掉,不做任何处理。但是,一旦这个SQL里面有一些块注释/**/包围的,那么maxwell将无法匹配到这种SQL,会当成正常SQL解析,最终解析失败抛出异常。导致maxwell挂掉。然后数据就不同步了。
解决方案
目前的解决方法
1:sql里面不要有任何注释
2:注释使用单行处理,如:#号、或者–
3:修改源码,将/**/包围的注释过滤掉。我采用了这种方案
友情提示:新手勿入