spring - 使用 RabbitMQ 的 Spring Cloud Stream 消费者的多个 bindingRoutingKey

标签 spring spring-boot rabbitmq spring-cloud-stream

我想在 Spring Cloud Stream 中配置一个输入 channel ,以使用多个路由键绑定(bind)到同一个交换(目标)。我已经设法使用这样的单个路由键来实现它:

spring:
  cloud:
    stream:
      rabbit:
        bindings:
          input1:
            consumer:
              bindingRoutingKey: key1.#
      bindings:
        input1:
          binder: rabbit
          group: group1
          destination: dest-group1

但我似乎无法让它适用于多个键。我试过这个:
spring:
  cloud:
    stream:
      rabbit:
        bindings:
          input1:
            consumer:
              bindingRoutingKey: key1.#,key2.#
      bindings:
        input1:
          binder: rabbit
          group: group1
          destination: dest-group1

但这似乎不起作用。

我正在使用 Spring Boot 2.0.1,并且 Spring 云依赖项是从以下位置导入的:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Finchley.RC1</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

有谁知道如何实现这一目标?

最佳答案

现在可以通过添加一个属性来完成:

spring.cloud.stream.rabbit.bindings.<channel-name>.consumer.binding-routing-key-delimiter=,
然后你可以用逗号分隔路由键:
spring.cloud.stream.rabbit.bindings.<channel-name>.consumer.binding-routing-key=key1,key2,key3
Thanks Gary
Reference documentation

关于spring - 使用 RabbitMQ 的 Spring Cloud Stream 消费者的多个 bindingRoutingKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50587227/

相关文章:

reactjs - 如何使用 spring boot 显示来自 AWS s3 的图像并使用react?

spring-boot - Vaadin 使用 SpringSecurity 身份验证

java - Spring AMQP (Rabbit) 监听器在异常情况下进入循环

java - 将 EJB3 与 Spring 集成

java - Spring - 从类路径资源 [Beans.xml] 加载 XML bean 定义 - NoClassDefFoundError

java - 记录针对 MySQL 数据库的长时间运行的查询?

java - Spring Boot启动时调用的Tasklet执行方法

java - 使用 Pageable 参数对 RestController 进行单元测试时获取 BeanInstantiationException

c# - 阅读开始前发送的信息?

java - RabbitTemplate 没有结束 Spring Boot + Spring Batch 作业应用程序