2016-07-06 3 views
0

Я ищу способ сделать иерархическую маршрутизацию в RabbitMQ. Я попытался найти ответ в документации, но внезапно провалился.Правильный ключ маршрутизации для обмена для обмена связыванием в RabbitMQ

Как правило, RabbitMQ позволяет вам подключаться к прямым обменам с помощью какого-либо ключа маршрутизации, но мне непонятно, как я могу маршрутизировать между несколькими биржами.

Например, предположим, что мы имеем обмен «root» и «host1» с ключом маршрутизации «host1». И у меня есть очереди, привязанные к обмену «host1» путем маршрутизации ключей своими собственными pids. Могу ли я публиковать сообщение для обмена «root» с помощью routing_key, например «host1.31261»? Очевидно, что это не работает именно так, но есть ли способ сделать сложный маршрут с разными прямыми обменами?

ответ

1

да, вы можете сделать это

вы можете использовать exchange to exchange привязки для этого

вы можете включить маршрутизацию ключей для этого связывания

типа обмена как для исходных и целевых может быть любым типом вы хотите. нужен обмен темами для сложной маршрутизации? затем объявите свои биржи в качестве темы.

вы можете даже перейти от обмена темой host к прямой или обменнику обмена в качестве цели.

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

примеры, показанные в этой документации, включают код java и .net. вам нужно будет проверить библиотеку, которую вы используете для своего конкретного языка.

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

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

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