2

每周一次,我们的 RabbitMQ 服务器停止接受新连接。我们发现这是因为旧连接没有在服务器端正确关闭。在客户端我们关闭连接,但在 RabbitMQ Management Studio(Web 界面)中,它会报告数千个打开的连接。

为什么连接不会自动关闭?我错过了一些配置设置吗?这是由于我如何在客户端处理连接吗?

4

1 回答 1

4

显然,如果连接客户端未正确关闭,则连接服务器端永远不会关闭。RabbitMQ 使用的 AMQP(高级消息队列协议)确保连接对于长时间运行的任务保持打开状态。

我的问题的原因当然是连接没有正确关闭。我对此的解决方案是在我的连接工厂中修复析构函数,并且我还让连接工厂服务于单例连接而不是创建新连接。我还为模型(通道)创建了一个池。这样我就不必创建多个连接,并且由于模型池,我大大提高了性能。

于 2013-06-01T03:27:40.423 回答