为RabbitMQ客户端连接创建类

jckbn6z7  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(1)|浏览(147)

我想创建一个类,有点像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(...);
        }
    }
}

这是最好的方法吗?如果不是,我该怎么搜索才能找到最好的模式?
感谢是前进!

xv8emn3q

xv8emn3q1#

在构造函数中打开连接和通道,并在释放示例时关闭它们。RabbitConnection的寿命很长,这一点非常重要。如果你一遍又一遍地创建和关闭连接(最坏的情况是每条消息),它将大大降低性能,并增加RabbitMQ服务器和客户端应用程序机器上的负载。

相关问题