2018-07-09 08:10:22.493 - clientId:1001 cursor:[mysql-bin.000274,21149132,1530956958000] address[/10.132.27.103:3306] 2018-07-09 10:11:27.493 - clientId:1001 cursor:[mysql-bin.000274,25141059,1530957528000] address[/10.132.27.103:3306]
发现canal日志报错: 2018-07-09 13:39:29.043 [destination = cube , address = /10.132.27.103:3306 , EventParser] ERROR c.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher - I/O error while reading from client socket java.io.IOException: Unexpected End Stream at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:156) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:78) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113) [canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209) [canal.parse-1.0.21.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55] 2018-07-09 13:39:29.044 [destination = cube , address = /10.132.27.103:3306 , EventParser] ERROR c.a.otter.canal.parse.inbound.mysql.MysqlEventParser - dump address /10.132.27.103:3306 has an error, retrying. caused by java.io.IOException: Unexpected End Stream at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:156) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:78) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113) ~[canal.parse-1.0.21.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209) ~[canal.parse-1.0.21.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55] 2018-07-09 13:39:29.047 [destination = cube , address = /10.132.27.103:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:cube[java.io.IOException: Unexpected End Stream at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:156) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:78) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:113) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:209) at java.lang.Thread.run(Thread.java:745)
今天(9号)发现canal的同步超级慢,原来每小时要更新几十次。今天个同步要花1-2个小时。 canal生产者环境正常,消费者也正常。有高手指点一下查问题的思路吗?
原提问者GitHub用户litanyuyuan
可以测试一下1.0.26-SNAPSHOT, 针对大批量数据DML同步的,建议调大一下jvm内存. 从我的测试来看只要内存资源够大, 解析速度还是非常稳定的
参考FAQ里的性能:https://github.com/alibaba/canal/wiki/FAQ
原回答者GitHub用户agapple
根据日志信息,可以看到canal同步出现了socket读取异常的错误,可能是网络或者MySQL服务方面的问题导致。可以考虑以下方案:
检查网络连接是否正常,尝试ping MySQL服务器,看是否有丢包或延迟等情况。
检查MySQL服务器的负载情况,是否存在资源瓶颈或者慢查询等问题。
如果网络和MySQL服务器都正常,可以尝试重启canal服务,或者检查canal的配置文件是否有误。
如果以上方法都无法解决问题,可以考虑升级canal版本或者使用其他的数据同步工具。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。