Конфигурация Spring Cloudstream 3 + RabbitMQ в существующую очередь - PullRequest
0 голосов
/ 07 февраля 2020

Я изучаю Cloudstream и не могу отобразить поток облака Function<String, String> в существующую очередь. Я просто создаю приложение hello world из весенней облачной документации, но не совсем понимаю эту часть, касающуюся имен привязок .

У меня есть q.test (существующее) в моем приложении rabbitmq, но когда я использую этот код и конфигурацию, мое приложение всегда создает новую очередь q.test.anonymous.someRandomString.

У кого-нибудь есть пример конфигурации для этого?

@SpringBootApplication
public class CloudstreamApplication {

    public static void main(String[] args) {
        SpringApplication.run(CloudstreamApplication.class, args);
    }

    @Bean
    public Function<String, String> uppercase() {
        return value -> {
            System.out.println("Received: " + value);
            return value.toUpperCase();
        };
    }

}

application.yml

spring.cloud.stream:
  function.bindings: 
    uppercase-in-0: q.test
  bindings:
    uppercase-in-0.destination: q.test

Спасибо

1 Ответ

0 голосов
/ 07 февраля 2020

См. документацию переплета - Использование существующих очередей / обменов .

Если у вас есть существующий обмен / очередь, которую вы хотите использовать sh, вы можете полностью отключить Автоматическая c подготовка осуществляется следующим образом, при условии, что обмен имеет имя myExchange, а очередь именуется myQueue:

spring.cloud.stream.bindings.<binding name>.destination=myExhange

spring.cloud.stream.bindings.<binding name>.group=myQueue

spring.cloud.stream.rabbit.bindings.<binding name>.consumer.bindQueue=false

spring.cloud.stream.rabbit.bindings.<binding name>.consumer.declareExchange=false

spring.cloud.stream.rabbit.bindings.<binding name>.consumer.queueNameGroupOnly=true

...