我们可以为RabbitMQ队列拥有多个订户吗?

时间:2017-02-20 17:45:08

标签: c# rabbitmq

我的c#console应用程序中有以下标题代码,用于从RabbitMQ队列中排出消息:

consumer = new EventingBasicConsumer(_channel);
consumer.Received += (o, e) =>
{
    //onMessageReceived()
};


consumer.Shutdown += (oo, oe) =>
{
    //Handle Subscribe event
};
_channel.BasicConsume(QueueName, false ,consumer);

我有两个运行此控制台应用程序的实例来模拟多个订阅者的情况。我总是向第一个用户发送消息,第二个用户总是空闲。我们可以在RabbitMQ队列上拥有同一队列的多个订户吗?

1 个答案:

答案 0 :(得分:1)

是的,但是如果控制台应用程序正在使用来自同一队列的消息,那么它们就会相互竞争。因此队列中的消息只会被其中一个消息使用。

如果您希望有更多订阅者接收相同的消息,您需要为每个订阅者定义一个不同的队列,绑定到交换(消息通过的地方),应该 fanout 主题(不是直接)。

更多信息herehere