使用主题交换配置多个队列,并使用路由密钥通过Spring Cloud Streams定向消息特定队列

时间:2019-05-11 11:26:28

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

使用主题交换配置多个队列,并使用路由键通过Spring Cloud Streams定向消息特定队列

我的要求是示例,我在用户端定义了以下队列和交换

spring.cloud.stream.bindings.inputA.destination=Common-Exchange
spring.cloud.stream.bindings.inputA.group=A-Queue

spring.cloud.stream.bindings.inputB.destination=Common-Exchange
spring.cloud.stream.bindings.inputB.group=B-Queue
  • 我应该能够在使用者中指定路由密钥,就像 我们在AMQP中完成,我们可以在其中传递交换队列和路由密钥 创建绑定
  • 在发送消息时,我应该能够设置路由密钥 生产者端使用MessageBuilder

    channel.send(MessageBuilder.withPayload(message).build())

当然,我们可以使用一个队列并使用标头来定向不同类型的消息,但是我需要知道连接到单个交换的多个队列如何与流一起工作。

1 个答案:

答案 0 :(得分:1)

请参见Rabbit binder documentation

  • 在消费者方面,设置bindingRoutingKey消费者绑定属性。
  • 在生产者端,具有routingKeyExpression生产者绑定属性(例如headers['routingKey'],并根据需要设置该标头)。

另请参阅Using Existing Queues/Exchanges