[英]What is the server-side timeout in RabbitMQ?
转到http://rmq.example.com:15672/#/connections显示打开的连接及其属性。 一种属性称为“超时”。 对于使用RabbitMQ Java客户端进行的连接,此值设置为600。对于使用node-amqp
库进行的连接,该值为空白。
我不知道如何更改它,甚至不一定要做什么。 在Java库中,有一个带有方法setTimeout
的ConnectionFactory
,但这将以毫秒为单位设置传递给Socket.connect
的超时,即,它是客户端超时,不会传递给服务器(并且实际上与服务器不一致) RMQ页面上显示的600s)。 我还尝试过将timeout
, connectionTimeout
和connection_timeout
添加为客户端属性,但是这些不会影响timeout
。 实际上,它们分别显示在客户端属性中(通过REST API检查):
"client_properties":{"connectiontimeout":"40000",
"connectionTimeout":"30000",
"connection_timeout", ... }
我不知道数字“ 600s”是从客户端发送的还是服务器默认的,甚至不是它的功能。 我正在寻找Java库和node-amqp
的源代码以寻求一些证据,但是想问问是否有人对此有更高级的了解。
这是心跳。 唯一显示这种同义词的地方是Rabbitmqctl的手册页 :
timeout
Connection timeout / negotiated heartbeat interval, in seconds.
在Java客户端中,这是通过ConnectionFactory.setRequestedHeartbeat(int seconds)
。 我已经读到心跳对于服务器知道何时断开连接是必需的,但是我不知道为什么会这样,因为AMQP是应用程序层协议,而不是传输层,并且是传输层管理连接的开始和结束时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.