Я использую весенний облачный поток с RabbitMQ. (Весна облачной версии Гринвич)
У меня есть одна тема с двумя очередями, и я хочу отправлять сообщения в каждую очередь, используя ключ маршрутизации.
Но это не работает должным образом.
Когда я отправляю сообщения через каждый канал @Output, сообщения отправляются в обе очереди. (Я хочу 1 сообщение для 1 очереди, но 1 сообщение отправляется в 2 очереди)
Конфигурация моего производителя приведена ниже (фактический код указан в yaml)
Spring.cloud.stream.bindings.output1.destination=topic-a
Spring.cloud.stream.bindings.output1.producer.requiredGroups=queue1
Spring.cloud.stream.bindings.output1.producer.bindingRoutingKey=queue1
Spring.cloud.stream.bindings.output1.producer.routingKeyExpression=queue1
Spring.cloud.stream.bindings.output2.destination=topic-a
Spring.cloud.stream.bindings.output2.producer.requiredGroups=queue2
Spring.cloud.stream.bindings.output2.producer.bindingRoutingKey=queue2
Spring.cloud.stream.bindings.output2.producer.routingKeyExpression=queue2
А мой потребительский конфиг ниже
spring.cloud.stream.bindings.input1.destination=topic-a
spring.cloud.stream.bindings.input1.group=queue1
spring.cloud.stream.bindings.input1.consumer.durableSubscription=true
spring.cloud.stream.bindings.input1.consumer.bindingRoutingKey=queue1
spring.cloud.stream.bindings.input2.destination=topic-a
spring.cloud.stream.bindings.input2.group=queue2
spring.cloud.stream.bindings.input2.consumer.durableSubscription=true
spring.cloud.stream.bindings.input2.consumer.bindingRoutingKey=queue2
Я также пытался без requiredGorups и bindingRoutingKey, оставляя только routingKeyExpression в конфигурации производителя.
Я передал значение routingKeyExpression в yaml для '' 'queue1' '' или '"queue1'".
Если я отправлю «первое» сообщение с output1 и «второе» сообщение с output2,
«Первое» и «Второе» сообщения находятся в topic-a.queue1. ( ключ маршрутизации отображается как 'topic-a' ), тогда как те же два сообщения находятся и в topic-a.queue2.
Всего сгенерировано 4 сообщения.
Что я не прав?
Любая помощь будет принята с благодарностью.