[英]Spring Cloud Stream RabbitMQ - Partitioning using header instead of routing key
[英]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.