开发者社区> 问答> 正文

canal1.1.0当监听到第一次变化时报错,后来都没问题

logEventParserProxy - dump address /106.12.14.74:3306 has an error, retrying. caused by com.alibaba.otter.canal.parse.exception.CanalParseException: java.net.SocketException: Connection reset Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) ~[na:1.8.0_181] at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_181] at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_181] at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[na:1.8.0_181] at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[na:1.8.0_181] at com.alibaba.otter.canal.parse.driver.mysql.socket.BioSocketChannel.read(BioSocketChannel.java:52) ~[canal.parse.driver-1.1.0.jar:na] at com.alibaba.otter.canal.parse.driver.mysql.utils.PacketManager.readHeader(PacketManager.java:12) ~[canal.parse.driver-1.1.0.jar:na] at com.alibaba.otter.canal.parse.driver.mysql.MysqlQueryExecutor.readNextPacket(MysqlQueryExecutor.java:159) ~[canal.parse.driver-1.1.0.jar:na] at com.alibaba.otter.canal.parse.driver.mysql.MysqlQueryExecutor.query(MysqlQueryExecutor.java:56) ~[canal.parse.driver-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.query(MysqlConnection.java:102) ~[canal.parse-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.dumpTableMeta(DatabaseTableMeta.java:148) ~[canal.parse-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.rollback(DatabaseTableMeta.java:129) ~[canal.parse-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.processTableMeta(AbstractMysqlEventParser.java:91) ~[canal.parse-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:188) ~[canal.parse-1.1.0.jar:na] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181] 2018-08-26 19:08:07.309 [destination = example , address = /106.12.14.74:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[com.alibaba.otter.canal.parse.exception.CanalParseException: java.net.SocketException: Connection reset

原提问者GitHub用户Dcein

展开
收起
Java工程师 2023-05-08 19:21:24 101 0
2 条回答
写回答
取消 提交回答
  • Caused by: java.net.SocketException: Connection reset

    网络异常, 会自动重试

    原回答者GitHub用户agapple

    2023-05-09 19:34:55
    赞同 展开评论 打赏
  • 根据提供的信息,可以得知该问题是在使用canal1.1.0时出现的,当监听到第一次变化时会报错,但后续不会再出现错误。

    可能原因是canal1.1.0版本中使用了Once类,该类只能保证在第一次监听时运行,之后不再运行,而在第一次监听时可能会存在一些未处理好的问题导致报错。后续不再出现错误是因为Once已经完成了它的使命,不再进行运行。

    解决方法是升级canal版本,最新版本已经去掉了Once的使用。另外,对于类似的问题,可以考虑延长第一步的兼容时间来避免出现类似问题。

    2023-05-09 08:04:52
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载