簡體   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