簡體   English   中英

僅從 Spring 雲 stream 和 RabbitMQ 中的特定路由鍵消費

[英]Consume only from a specific routing key in Spring cloud stream with RabbitMQ

在 Cloud Stream for RabbitMQ 中,我想設置一個消費者,該消費者將從隊列中僅消費已使用特定路由鍵轉發的消息。 這可能嗎?

這是我的 application.properties。

生產商

spring.cloud.stream.rabbit.bindings..consumer.bindQueue=false
spring.cloud.stream.rabbit.bindings..consumer.declareExchange=false
spring.cloud.stream.bindings.producer1-out-0.destination=exchange1
spring.cloud.stream.rabbit.bindings.producer1-out-0.producer.routingKeyExpression='routing.key.1'

消費者

spring.cloud.stream.rabbit.bindings..consumer.bindQueue=false
spring.cloud.stream.rabbit.bindings..consumer.declareExchange=false
spring.cloud.stream.bindings.consumer1-in-0.destination=exchange1
spring.cloud.stream.bindings.consumer1-in-0.group=reports
spring.cloud.stream.rabbit.bindings.consumer1-in-0.consumer.queueNameGroupOnly=false
spring.cloud.stream.rabbit.bindings.consumer1-in-0.consumer.bindingRoutingKeyDelimiter=,
spring.cloud.stream.rabbit.bindings.consumer1-in-0.consumer.bindingRoutingKey='routing.key.1'

交換和綁定直接在 RabbitMQ 中定義。

我的期望是,如果我將spring.cloud.stream.rabbit.bindings.consumer1-in-0.consumer.bindingRoutingKey更改為消費者將停止消費的其他內容,但事實並非如此。

不; 與 JMS 不同,RabbitMQ 沒有消息選擇器的概念; 您將收到所有消息。

解決這個問題的規范方法是為每個 RK 使用不同的隊列。

bindingRoutingKey為 false 時, bindQueue沒有意義,在任何情況下,它所做的只是指定在將隊列綁定到交換器時使用哪個路由鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM