http://rmq.example.com:15672/#/connections显示了打开的连接及其属性。一个属性称为“超时值”。对于使用RabbitMQ Java进行的连接,此值设置为600。对于使用node-amqp库创建的连接,则为空。
我不知道如何改变它,甚至不知道它能做什么。在Java库中,有一个带有setTimeout方法的setTimeout,但是这设置了以ms为单位传递给Socket.connect的超时值,也就是说,它是一个客户端超时,无法到达服务器(实际上,它不符合RMQ页面上显示的600 s)。我也尝试过添加timeout、connectionTimeout和connection_timeout作为客户端属性,但这些属性不会影响timeout。实际上,它们分别出现在客户端属性中(通过REST检查):
"client_properties":{"connectiontimeout":"40000",
"connectionTimeout":"30000",
"connection_timeout", ... }我不知道“600 s”是从客户端发送的,还是服务器默认的,甚至是它所做的。我正在查看Java库和node-amqp的源代码,以获得一些证据,但我想问是否有人对此有更高的了解。
发布于 2013-11-21 19:28:29
是心跳。这个同义词唯一明显的地方是狂犬病手册页。
timeout
Connection timeout / negotiated heartbeat interval, in seconds.在Java中,这是通过ConnectionFactory.setRequestedHeartbeat(int seconds)设置的。我读到,服务器需要心跳才能知道连接何时死亡,但是我不知道为什么会这样,因为AMQP是应用层协议,而不是传输层,传输层在连接启动和结束时进行管理。
https://stackoverflow.com/questions/20129715
复制相似问题