1
每週一次我們的RabbitMQ服務器停止接受新的連接。我們發現這是因爲服務器端沒有正確關閉舊連接。客戶端我們關閉了連接,但在RabbitMQ Management Studio(Web界面)中,它報告了數千個打開的連接。RabbitMQ不關閉服務器端的連接
爲什麼連接不是自動關閉的?我是否缺少一些配置設置?這是由於我如何在客戶端部署連接?
每週一次我們的RabbitMQ服務器停止接受新的連接。我們發現這是因爲服務器端沒有正確關閉舊連接。客戶端我們關閉了連接,但在RabbitMQ Management Studio(Web界面)中,它報告了數千個打開的連接。RabbitMQ不關閉服務器端的連接
爲什麼連接不是自動關閉的?我是否缺少一些配置設置?這是由於我如何在客戶端部署連接?
顯然,如果連接客戶端沒有正確關閉,連接服務器端永遠不會關閉。 RabbitMQ使用的AMQP(高級消息隊列協議)可確保長時間運行任務的連接保持打開狀態。
我的問題的原因當然是連接沒有正確關閉。我的解決方案是在連接工廠修復析構函數,並且讓連接工廠服務於單例連接而不是創建新連接。我還爲模型(頻道)創建了一個池。這樣我就不必創建多個連接,並且感謝模型池,我大大提高了性能。
您可能沒有正確關閉客戶端的連接,因此服務器端將保持開放和閒置狀態,要求您通過管理插件手動關閉它們。 – robthewolf
是的,謝謝。我玩弄了它,並找到了解決我的問題的簡單方法! – Molibar