[英]Rabbit MQ idle connection dropped
我有一個作為使用者/訂戶運行的.NET Windows服務,正在偵聽消息隊列。
Windows服務與安裝Rabbit mq服務器的軟件在同一台計算機上運行。
如果隊列空閑60分鍾,則會導致該連接被丟棄(我在監視UI儀表板時就知道了),並將Windows服務置於錯誤狀態。
事實證明,這令人沮喪。 我已經在Rabbit mq客戶端上應用了心跳設置,但這沒有任何效果。
連接斷開時,我在日志文件中得到以下錯誤
=ERROR REPORT==== 22-Aug-2017::12:20:29 ===
closing AMQP connection <0.1186.0> ([FE80::C00E:F801:A2A7:8530]:61481 ->
[FE80::C00E:F801:A2A7:8530]:5672):
missed heartbeats from client, timeout: 30s
rbbit mq服務器日志文件設置:[{rabbit,[{heartbeat,60}]}]。
客戶代碼:
var connectionFactory = new ConnectionFactory
{
HostName = hostName,
UserName = userName,
Password = password,
RequestedHeartbeat = heartBeat,
AutomaticRecoveryEnabled = true,
NetworkRecoveryInterval = TimeSpan.FromSeconds(numberOfSecondsInterval),
RequestedConnectionTimeout = RequestedConnectionTimeoutInMiliseconds
};
if (port > 0)
connectionFactory.Port = port;
var connection = connectionFactory.CreateConnection();
var model = connection.CreateModel();
model.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false);
return new Tuple<IConnection, IModel>(connection, model);
上面的心跳值設置為30秒,
網絡恢復值設置為10秒&
請求連接超時設置為2秒
我不知道在配置方面我還缺少什么?
上面運行的服務器是Windows 2012 R2
基本上,我期望無論空閑時間如何,連接始終保持在原位。
我是否需要確保還安裝了Windows操作系統級別的TCP保持活動設置?
Rabbit MQ版本是3.6.8
把我的頭發扯掉,所以任何指針都非常感謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.