Amazon ec2 获取Rabbitmq心跳异常
我在rabbitmq中面临一个问题,即它使用以下异常终止连接Amazon ec2 获取Rabbitmq心跳异常,amazon-ec2,rabbitmq,amqp,Amazon Ec2,Rabbitmq,Amqp,我在rabbitmq中面临一个问题,即它使用以下异常终止连接 {"message":"com.rabbitmq.client.AlreadyClosedException: connection is already closed due to connection error; cause: com.rabbitmq.client.MissedHeartbeatException: Heartbeat missing with heartbeat = 60 seconds"} 因此,我对其
{"message":"com.rabbitmq.client.AlreadyClosedException: connection is already closed due to connection error; cause: com.rabbitmq.client.MissedHeartbeatException: Heartbeat missing with heartbeat = 60 seconds"}
因此,我对其使用以下配置:-
{“log”:“java.net.NoRouteToHostException:没有到主机的路由\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.633374123Z”} {“log”:“\u0009at java.net.PlainSocketImpl.socketConnect(本机方法)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.633666158Z”} {“log”:“\u0009at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.633935828Z”} {“log”:“\u0009at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.634170787Z”} {“log”:“\u0009at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.63440824Z”} {“log”:“\u0009at java.net.socksocketimpl.connect(socksocketimpl.java:392)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.634625637Z”} {“log”:“\u0009at java.net.Socket.connect(Socket.java:589)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.635038038Z”} {“log”:“\u0009at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.635172903Z”} {“log”:“\u0009at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:34)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.635369445Z”} {“log”:“\u0009at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.recoverConnection(AutorecoveringConnection.java:435)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.635639932Z”} {“log”:“\u0009at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.beginutomaticsrecovery(AutorecoveringConnection.java:407)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00.63584649Z”} {“log”:“\u0009at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.access$000(AutorecoveringConnection.java:53)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.636051142Z”} {“log”:“\u0009at com.rabbitmq.client.impl.recovery.AutorecoveringConnection$1.shutdownpleted(AutorecoveringConnection.java:352)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00.636233667Z”} {“log”:“\u0009at com.rabbitmq.client.impl.ShutdownNotifierComponent.notifyListeners(ShutdownNotifierComponent.java:75)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.636899252Z”} {“log”:“\u0009at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:576)\n”,“stream”:“stderr”,“time”:“2018-03-22T00:00:00.637183801Z”}
从我四处搜索的结果来看,似乎AWS负载平衡器已经关闭了连接。 能否尝试按如下方式修改配置:
factory.setRequestedHeartbeat(30)代码>
看看它是否能解决您的问题?不,我还没有尝试使用此配置,我会尝试这样做,但将时间缩短到30分钟会有什么效果请建议,负载平衡器如何关闭连接?@Isaac-如果连接被负载平衡器中断(一个更大的问题是,为什么要在客户端和rabbitmq服务器之间安装负载平衡器)-这样可以防止它错误地检测到断开的连接。但我并不乐观这就是问题所在。@我的玩家没有配置负载平衡器b/w客户端和Rabbitmq所以有一个负载平衡器?去掉它,看看会发生什么。这种情况多久发生一次,你的网络布局是什么?错误表明是这样的正在丢失到服务器的路由。我经常会遇到此错误,但无法了解其原因。此错误表示正在丢失到服务器的路由。@请您解释一下。java.net.noroutetohestException
factory.setAutomaticRecoveryEnabled(true);
factory.setNetworkRecoveryInterval(1000);
factory.setRequestedHeartbeat(60);