为RabbitMQ客户端连接创建一个类

我想创建一个类(类似于RabbitMQ连接的包装器),以将消息发布到交易所。这将是另一个系统使用的类库。

我的问题很简单:如何关闭和打开连接?

我最初的想法是这样的:

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(...);
        }
    }
}

这不是不是寻找最佳模式的最佳方法吗?

谢谢前进!

burgud12 回答:为RabbitMQ客户端连接创建一个类

在构造函数中打开连接和通道,并在处理实例后将其关闭。 RabbitConnection的生命很重要。如果您一遍又一遍地创建和关闭连接(最坏的情况是每个消息),它将大大降低性能,并增加RabbitMQ服务器和客户端应用程序计算机上的负载。


注意: RabbitMQ团队监视rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。

本文链接:https://www.f2er.com/3152332.html

大家都在问