Тема Exchange vs Direct Exchange в RabbitMQ

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

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

Наличие единственного обмена также кажется немного проще в обслуживании, но мне интересно, есть ли какая-либо выгода (если есть) от того, чтобы сделать это одним способом по сравнению с другим?

Вариант 1, использование нескольких прямых обменов:

ExchangeA (type: direct)
-QueueA

ExchangeB (type: direct)
-QueueB

ExchangeC (type: direct)
-QueueC

Вариант 2, использование обмена по одной теме:

Exchange (type: topic)
-QueueA  (receives messages from exchange with routing key of "TypeA")
-QueueB  (receives messages from exchange with routing key of "TypeB")
-QueueC  (receives messages from exchange with routing key of "TypeC")
48
задан Chris Martin 12 November 2015 в 21:45
поделиться