繁体   English   中英

RabbitMQ中的服务器端超时是什么?

[英]What is the server-side timeout in RabbitMQ?

转到http://rmq.example.com:15672/#/connections显示打开的连接及其属性。 一种属性称为“超时”。 对于使用RabbitMQ Java客户端进行的连接,此值设置为600。对于使用node-amqp库进行的连接,该值为空白。

我不知道如何更改它,甚至不一定要做什么。 在Java库中,有一个带有方法setTimeoutConnectionFactory ,但这将以毫秒为单位设置传递给Socket.connect的超时,即,它是客户端超时,不会传递给服务器(并且实际上与服务器不一致) RMQ页面上显示的600s)。 我还尝试过将timeoutconnectionTimeoutconnection_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM