otter 4.2.13
com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: java.lang.IllegalArgumentException: illegal json data at com.taobao.tddl.dbsync.binlog.JsonConversion.parse_scalar(JsonConversion.java:150) ~[canal.parse.dbsync-1.0.22.jar:na] at com.taobao.tddl.dbsync.binlog.JsonConversion.parse_value(JsonConversion.java:67) ~[canal.parse.dbsync-1.0.22.jar:na] at com.taobao.tddl.dbsync.binlog.JsonConversion$Json_Value.element(JsonConversion.java:272) ~[canal.parse.dbsync-1.0.22.jar:na] at com.taobao.tddl.dbsync.binlog.JsonConversion$Json_Value.toJsonString(JsonConversion.java:285) ~[canal.parse.dbsync-1.0.22.jar:na] at com.taobao.tddl.dbsync.binlog.JsonConversion$Json_Value.toJsonString(JsonConversion.java:295) ~[canal.parse.dbsync-1.0.22.jar:na] at com.taobao.tddl.dbsync.binlog.event.RowsLogBuffer.fetchValue(RowsLogBuffer.java:957) ~[canal.parse.dbsync-1.0.22.jar:na] at com.taobao.tddl.dbsync.binlog.event.RowsLogBuffer.nextValue(RowsLogBuffer.java:99) ~[canal.parse.dbsync-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseOneRow(LogEventConvert.java:467) ~[canal.parse-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseRowsEvent(LogEventConvert.java:377) ~[canal.parse-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parse(LogEventConvert.java:111) ~[canal.parse-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parse(LogEventConvert.java:62) ~[canal.parse-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser.parseAndProfilingIfNecessary(AbstractEventParser.java:327) ~[canal.parse-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3$1.sink(AbstractEventParser.java:177) ~[canal.parse-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:121) ~[canal.parse-1.0.22.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:210) ~[canal.parse-1.0.22.jar:na] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]
拉了几个patchillegal+json+data想替换canal1.0.22 ,没解决
用node4.2.13跟4.2.15 交替跑。 原因是4.2.13 不支持json, 4.2.15 不稳定会出现connect.connect() first
正常跑4.2.13 碰到json问题临时跑4.2.15
4.2.15 必现问题connect.connect() first
原提问者GitHub用户 luyee
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的信息,您遇到了 Otter 在解析 binlog 时出现的 illegal json data 异常,同时也遇到了 Otter 在使用 4.2.15 版本时出现的 connect.connect() first 异常。
针对这两个异常,可以尝试以下几个方法:
illegal json data 异常:这个异常通常是由于 binlog 中包含了无效或者不合法的 JSON 数据导致的。为了解决这个问题,您可以尝试更新或者升级 Canal 的版本,以确保 Canal 能够正确解析 JSON 数据。同时,建议检查 binlog 中的数据是否符合 JSON 格式要求,并及时清理或者修复无效数据。
connect.connect() first 异常:这个异常通常是由于 Otter 和 Canal 之间的网络连接存在问题导致的。为了解决这个问题,您可以尝试以下几个方法:
检查 Canal 的配置信息,确保 Canal 启动正常,并已正确配置网络参数和端口信息。 检查防火墙和网络连接,确保 Otter 可以正常连接 Canal,并且能够通过网络访问 Canal 所在的服务器。 检查 Otter 的版本和配置信息,确保 Otter 已正确配置 Canal 的连接参数和协议信息。 尝试升级或者降级 Otter 的版本,以确保 Otter 和 Canal 之间的网络连接能够正常工作。 需要注意的是,针对这两个异常,应该综合考虑多个方面的因素,并及时备份和监控数据,以确保数据同步的正确性和稳定性。如果您仍然无法解决这两个问题,建议联系 Otter 的技术支持或者社区,以获得更好的帮助和支持。