[alibaba/canal]项目运行一段时间报:Connection reset by peer

2024-07-22 986 views
2
Question

使用版本是1.1.5 ERROR com.alibaba.otter.canal.admin.handler.SessionHandler - something goes wrong with channel:[id: 0x34e4ac04, /185.81.68.65:64806 => /172.18.0.3:11110], exception=java.io.IOException: Connection reset by peer

临时解决方案是重启server端,看其他issue里说处理空闲连接超时,请问怎么排查这个问题,有代码示例吗?

回答

5

1.1.7同样也有这个问题,Client和Server部署在同一台机器上。

8

最新版本1.1.7的Connection reset by peer

ERROR c.a.otter.canal.server.netty.handler.SessionHandler - something goes wrong with channel:[id: 0x42f945ad, , exception=java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) at sun.nio.ch.IOUtil.read(IOUtil.java:192) at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:323) at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282) at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

1

如果因为上述报错不能同步的话,简单的方式是设置下超时时间

SimpleCanalConnector canalConnector = (SimpleCanalConnector) CanalConnectors.newSingleConnector(new InetSocketAddress(hostname, port), destination, userName, password); canalConnector.setIdleTimeout(Integer.MAX_VALUE);

4

LS正解