pid:3 nid:1 exception:canal:ytz_feiqiu:java.net.SocketTimeoutException: Timeout occurred, failed to read total 4 bytes in 25000 milliseconds, actual read only 0 bytes at com.alibaba.otter.canal.parse.driver.mysql.socket.BioSocketChannel.read(BioSocketChannel.java:124) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch0(DirectLogFetcher.java:174) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:77) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:159) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:271) at java.lang.Thread.run(Thread.java:748)
日志记录里面每分钟都会又这个异常,但是同步也没有问题,都能正常同步数据, 用的是docker,数据源是mysql 5.1.73, 另一个数据源mysql 5.6.42的就没有这个问题, 请问 这个异常跟数据库版本有关系吗? 该从哪里调查希望能给个提示
原提问者GitHub用户vinnie888
在mysql库上定时产生心跳.
产生这个异常的本质,mysql在25秒内都没有任何binlog事件,canal等了25秒没有任何消息就会出现类似的错误,mysql新版本针对无消息时引入了heartbeat事件,也有同学发现mysql并不是准时按照masterheart设置的时间发心跳包,经常会超过2个轮询才会发心跳包,即30s+
原回答者GitHub用户agapple
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。