我在 .net 中看到了许多用法 RABBITMQ 的示例(在ASP.NET或Console应用程序中(。他们中的大多数看起来像这样:
using (var connecttion = MyConnectionFactoryWrapper.CreateConnection())
using (var channel = connection.CreateChannel())
{
...
}
它有效吗?在文档中,我看到:
AMQP连接通常是长寿的。AMQP是一个应用程序 使用TCP可靠交付的级别协议。
所以我想最好有一个连接用于应用程序。关于频道的另一点:
amqp 0-9-1连接是用可以是的通道多路复用的 被认为是"共享单个TCP的轻量级连接 连接"。
在这里,我想在ASP.NET应用程序的情况下可以使用channel-per-request
。我的问题:拥有connection-per-application
和channel-per-request
?
是的, connection-per-application
是建议的方法。Channel-per-request
也应该做,但是我会为您所需的吞吐量进行测试。对于我们的项目,我们使用了EasyNETQ,它会为您创建连接/频道。我们只是为应用程序保留了一个MessageBus
实例。