[英]ASP.NET + Rabbit MQ connection and channel lifetime
我看到很多在.NET中使用RabbitMq的例子(在 ASP.NET 或控制台应用程序中)。 他们中的大多数看起来像这样:
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
实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.