繁体   English   中英

ASP.NET + Rabbit MQ 连接和通道生命周期

[英]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-applicationchannel-per-request是最佳实践吗?

是的, connection-per-application是一种建议的方法。 Channel-per-request应该这样做,但我会针对您所需的吞吐量对其进行测试。 对于我们的项目,我们使用了EasyNetQ ,它负责为您创建连接/通道。 我们只为应用程序保留了一个MessageBus实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM