2017-02-20 22 views
0

У меня есть следующий код в моей надписи C Применения # консольного стечь сообщения из очереди RabbitMQ:Можем ли мы иметь несколько подписчиков для очереди RabbitMQ?

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


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

У меня есть два экземпляра этой консоли приложения, запущенное для имитации несколько абонентов ситуации. Я всегда обновляю сообщения для первого абонента, а второй - бездействует. Можем ли мы иметь несколько подписчиков в одной очереди в очереди RabbitMQ?

+1

Вы пытались отправить несколько сообщений, то один потребитель может справиться? Попытайтесь заполнить очередь и запустите подписчики, и проверьте, что происходит с вашими подписчиками. Вы можете иметь несколько подписчиков в одной очереди в RabbitMQ. – Johansson

ответ

1

Да, вы можете, но если консольные приложения потребляют сообщения из одной очереди, они конкурируют друг с другом. Таким образом, сообщения внутри очереди будут потребляться только одним из них.

Если вы хотите иметь больше абонентов, которые получают одни и те же сообщения, вам необходимо определить другую очередь на одного абонента, связанную с обменом (где сообщения, проходящими через), которые должны быть разветвлением или тему (не прямой).

Подробнее here и here

 Смежные вопросы

  • Нет связанных вопросов^_^