Весенний облачный поток - конфигурация RabbitMQ - PullRequest
0 голосов
/ 29 апреля 2020

Я изучаю RabbitMq, используя весенний облачный поток java. Имея сомнения в конфигурации mq.

Согласно документам - spring.cloud.stream.bindings.> ChannelName> .destination = dest1

Я использую конфигурацию ниже, и она работает -

spring.cloud.stream.bindings.input.destination = dest1

Но если я упомяну имя моего канала вместо ввода, как показано ниже, оно не работает - spring.cloud.stream.bindings.myChannel. destination = dest1

В моем классе - @INPUT ('myChannel')

Я сомневаюсь, почему он не работает, когда я упоминаю имя канала, указанное в классе, и

Но это работает, когда я задаю по умолчанию как .input. ..?

ОБНОВЛЕНИЕ

MyInterface. java

String CHANNEL = myChannel;
@INPUT(CHANNEL )
SubscribableChannel subs();

MyListener. java

@StreamListener(MyInterface.CHANNEL)
public void queueMsg(String str) {
   System.out.println("Str msg = "+str);
}

application.prop

#Below property working fine
spring.cloud.stream.bindings.input.destination=dest1
spring.cloud.stream.bindings.input.binder=rabbit


#Below property NOT working 
#spring.cloud.stream.bindings.myChannel.destination=dest1
#spring.cloud.stream.bindings.myChannel.binder=rabbit

1 Ответ

0 голосов
/ 29 апреля 2020

Имя канала является именем привязки input в этом случае.

spring.cloud.stream.bindings. input .destination = dest1

Для RabbitMQ конечный пункт - это обменное имя, которое мы опубликуем sh.

Использовать @Input("input").

или

spring.cloud.stream.bindings. myChannel .destination = dest1

Если это не работает, вам нужно показать ваш слушатель и интерфейс.

...