2016-03-30 3 views
0

Мне интересно, зачем нам нужно routing key, чтобы отправить сообщение от exchange в очередь. Мы не можем использовать простое имя очереди для маршрутизации сообщения. Кроме того, в случае публикации в несколько очередей мы можем использовать несколько имен очередей. Может ли кто-нибудь указать на сценарий, в котором нам действительно нужен ключ маршрутизации, имя очереди будет недостаточным.Зачем нам нужен ключ маршрутизации в rabbitmq

ответ

1

Существует несколько видов обменов. Обмен разветвлением игнорирует ключ маршрутизации и отправляет сообщения во все очереди. Но в значительной степени все другие типы обмена используют ключ маршрутизации, чтобы определить, какая очередь, если таковая имеется, получит сообщение.

tutorials on the RabbitMQ website описывает несколько случаев, когда полезны различные типы обмена и где ключ маршрутизации является релевантным.

Например, tutorial 5 демонстрирует, как использовать обмен темы для маршрутизации сообщений журнала в разные очереди в зависимости от уровня журнала каждого сообщения.

Если вы хотите перенаправлять несколько очередей, вам необходимо привязать их к обмену разветвлением и использовать этот обмен в своем издателе.

Вы не можете указать несколько имен очередей в своем издателе. В AMQP вы не публикуете сообщение в очереди, вы публикуете сообщение на обмен. Это зависит от обмена, чтобы определить соответствующие очереди. Возможно, что сообщение направлено без очереди и просто отброшено.

+0

ok. Зачем нам нужен ключ маршрутизации между обменом и очередью. Мы можем использовать обмен фанатов для отправки сообщений на все очереди. Аналогично, если мы хотим отправить в конкретную или несколько очередей. Нельзя ли использовать имя самой очереди. Зачем нам нужна специальная концепция «routing key» – Naresh

+0

Вы можете поместить имя очереди в ключ маршрутизации и опубликовать в «» по умолчанию обмен (echange с пустой строкой): ваше сообщение окажется в нужной очереди. Клавиши маршрутизации и различные типы обменов дают большую гибкость в том, как вы можете направлять сообщения в очереди. Это также позволяет вам разделить издателей и потребителей. Еще одно преимущество: он перемещает знания маршрутизации от издателя к автобусу, где он принадлежит. –

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