我想创建一个类,有点像RabbitMQ连接的 Package 器,以将消息发布到交换。这将是另一个系统使用的类库。
我的问题很简单:如何关闭和打开连接?
我最初的想法是这样的:
public class RabbitConnection
{
private readonly IConnection conn;
public RabbitConnection() {
try {
var factory = new ConnectionFactory() {...}
this.conn = factory.CreateConnection();
}
catch {
...
}
}
...
public void Publish<T>(T @event) where T : class {
using (var channel = conn.CreateModel()) {
...
channel.BasicPublish(...);
}
}
}
这是最好的方法吗?如果不是,我该怎么搜索才能找到最好的模式?
感谢是前进!
1条答案
按热度按时间xv8emn3q1#
在构造函数中打开连接和通道,并在释放示例时关闭它们。
RabbitConnection
的寿命很长,这一点非常重要。如果你一遍又一遍地创建和关闭连接(最坏的情况是每条消息),它将大大降低性能,并增加RabbitMQ服务器和客户端应用程序机器上的负载。