Обмен разветвления Spring Cloud Stream Rabbit MQ

В своем приложении я интегрирую Rabbit MQ с помощью весеннего облачного потока. По умолчанию весенние облачные потоки создают пункт назначения как тему обмена в Rabbit MQ. Как настроить Spring Cloud Stream для создания обмена типа fanout?


person auhuman    schedule 27.12.2016    source источник
comment
Объясните, зачем вам fanout обмен?   -  person Artem Bilan    schedule 28.12.2016
comment
У нас есть открытый вопрос, чтобы предоставить дополнительные сведения варианты сверх текущей самоуверенной конфигурации.   -  person Gary Russell    schedule 28.12.2016
comment
Тема @ArtemBilan нуждается в шаблоне маршрутизации. Приложение My Producer - это Java-приложение, и я интегрируюсь с Rabbit MQ с помощью Spring Cloud Stream. My Consumer Application - это приложение NodeJS, которое подписывается на очередь и связывает ее с обменом, созданным производителем. Но когда производитель публикует сообщение для обмена, оно не попадает в очередь. Очередь всегда пуста. Я думаю, что очереди требуется шаблон маршрутизации при привязке к обмену, который я не могу настроить с помощью весеннего облачного потока. Итак, я использую обмен типа fanout, который отлично работает   -  person auhuman    schedule 28.12.2016
comment
@GaryRussell Спасибо. Прямо сейчас я создаю обмен вручную как разветвление типа, а затем использую его в весеннем облачном потоке   -  person auhuman    schedule 28.12.2016


Ответы (1)


  1. Вам обязательно стоит привязать свою очередь со стороны потребителя или брокера. Это не должен быть уровень Spring Cloud Stream Binder. Для вашего варианта использования вы можете рассматривать ключ привязки как #:

Когда очередь связана с ключом привязки "#" (хеш) - она ​​будет получать все сообщения, независимо от ключа маршрутизации - как при обмене по разветвителю.

См. https://www.rabbitmq.com/tutorials/tutorial-five-java.html

  1. Вы по-прежнему можете использовать желаемый обмен разветвления для своего потребителя, но должна быть задействована та же функция привязки брокера, чтобы привязать обмен разветвления к этому обмену темой SCSt с помощью того же трюка с # клавишами.
person Artem Bilan    schedule 28.12.2016
comment
Спасибо @Artem Bilan. Это альтернативное решение / временное решение заданного мной вопроса. Но идеально соответствует моим требованиям - person auhuman; 28.12.2016
comment
@ Артем Билан Тогда в чем разница между Fanout и topic + routing key #? - person Govinda Sakhare; 06.02.2018
comment
В исполнении. Fanout не пытается проверить routing key. - person Artem Bilan; 06.02.2018