当我调试Java客户端代码时。我等了很久,rabbitmq服务器记录“客户端缺少心跳,超时:60s”错误。没关系。但是在发生此错误之后,即使我重新启动Java客户端,也无法再次连接Rabbitmq服务器。客户端Java程序处理套接字关闭错误一次又一次。同样,心跳错误后也无法连接Rabbitmq Web界面。要解决此连接问题,我必须重新启动docker桌面容器。为什么客户端失去心跳后,rabbitmq会保持这种状态。
重新启动Java客户端后,我得到:
2019-04-11 11:13:36,870 ERROR c.e.b.d.w.Main [main] java.util.concurrent.TimeoutException
2019-04-11 11:13:36,870 ERROR c.r.c.i.ForgivingExceptionHandler [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
java.net.SocketException: Socket Closed
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_152]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_152]
at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_152]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_152]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_152]
at java.io.BufferedInputStream.read(BufferedInputStream.java:265) ~[?:1.8.0_152]
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[?:1.8.0_152]
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-4.1.0.jar:4.1.0]
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-4.1.0.jar:4.1.0]
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:578) [amqp-client-4.1.0.jar:4.1.0]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_152]