Мне интересно, зачем нам нужно routing key
, чтобы отправить сообщение от exchange
в очередь. Мы не можем использовать простое имя очереди для маршрутизации сообщения. Кроме того, в случае публикации в несколько очередей мы можем использовать несколько имен очередей. Может ли кто-нибудь указать на сценарий, в котором нам действительно нужен ключ маршрутизации, имя очереди будет недостаточным.Зачем нам нужен ключ маршрутизации в rabbitmq
ответ
Существует несколько видов обменов. Обмен разветвлением игнорирует ключ маршрутизации и отправляет сообщения во все очереди. Но в значительной степени все другие типы обмена используют ключ маршрутизации, чтобы определить, какая очередь, если таковая имеется, получит сообщение.
tutorials on the RabbitMQ website описывает несколько случаев, когда полезны различные типы обмена и где ключ маршрутизации является релевантным.
Например, tutorial 5 демонстрирует, как использовать обмен темы для маршрутизации сообщений журнала в разные очереди в зависимости от уровня журнала каждого сообщения.
Если вы хотите перенаправлять несколько очередей, вам необходимо привязать их к обмену разветвлением и использовать этот обмен в своем издателе.
Вы не можете указать несколько имен очередей в своем издателе. В AMQP вы не публикуете сообщение в очереди, вы публикуете сообщение на обмен. Это зависит от обмена, чтобы определить соответствующие очереди. Возможно, что сообщение направлено без очереди и просто отброшено.
- 1. Зачем нам нужен Control.Lens.Reified?
- 2. Зачем нам нужен @GeneratedValue?
- 3. Зачем нам нужен конструктор?
- 4. Зачем нам нужен cmake?
- 5. Зачем нам нужен strdup()?
- 6. Зачем нам нужен enabled_shared_from_this
- 7. Зачем нам нужен org.junit.ComparisonFailure?
- 8. Зачем нам нужен contexClassLoader
- 9. Зачем нам нужен mktemp?
- 10. Зачем нам нужен кеш?
- 11. Зачем нам нужен частный конструктор?
- 12. Зачем нам нужен оператор «delete []»?
- 13. Зачем нам нужен обратный адрес?
- 14. Зачем нам нужен сервер Fuseki?
- 15. Зачем нам нужен IIS Express?
- 16. Зачем нам нужен полукруглый разъем?
- 17. Зачем нам нужен request.getSession (true)?
- 18. Зачем нам нужен двумерный массив?
- 19. Зачем нам нужен новый оператор?
- 20. Зачем нам нужен частный конструктор?
- 21. Зачем нам нужен длинный тип?
- 22. Зачем нам нужен сгенерированный код?
- 23. Зачем нам нужен TensorFlow tf.Graph?
- 24. Зачем нам нужен компилятор C++?
- 25. Зачем нужен первичный ключ?
- 26. Зачем нам нужен конструктор в ООП?
- 27. Зачем нам нужен распределенный замок в Redis
- 28. Зачем нам нужен Gemfile.lock в Ruby?
- 29. Зачем нам нужен io_service в boost?
- 30. Зачем нам нужен холст в Java 3D?
ok. Зачем нам нужен ключ маршрутизации между обменом и очередью. Мы можем использовать обмен фанатов для отправки сообщений на все очереди. Аналогично, если мы хотим отправить в конкретную или несколько очередей. Нельзя ли использовать имя самой очереди. Зачем нам нужна специальная концепция «routing key» – Naresh
Вы можете поместить имя очереди в ключ маршрутизации и опубликовать в «» по умолчанию обмен (echange с пустой строкой): ваше сообщение окажется в нужной очереди. Клавиши маршрутизации и различные типы обменов дают большую гибкость в том, как вы можете направлять сообщения в очереди. Это также позволяет вам разделить издателей и потребителей. Еще одно преимущество: он перемещает знания маршрутизации от издателя к автобусу, где он принадлежит. –