Я пытаюсь настроить RabbitMQ с поддержкой Spring Cloud Stream
У меня есть пара потребителей и производителей. Один из производителей должен создавать сообщения для отдельного виртуального хоста в одном экземпляре RabbitMQ (позже это могут быть разные физические экземпляры).
application.yaml
spring:
cloud:
stream:
binders:
binder1:
type: rabbit
defaultCandidate: false
inheritEnvironment: false
environment:
spring:
rabbitmq:
host: localhost
port: 5672
virtual-host: virtual-host-1
username: guest
password: guest
binder2:
type: rabbit
defaultCandidate: false
inheritEnvironment: false
environment:
spring:
rabbitmq:
host: localhost
port: 5672
virtual-host: virtual-host-2
username: guest
password: guest
bindings:
test:
binder: binder1
coordinates:
destination: coordinates
binder: binder1
events:
destination: events
binder: binder1
events_output:
destination: events
binder: binder1
tasks:
destination: tasks
binder: binder2
Цель состоит в том, чтобы для связывания tasks
использовался vhost virtual-host-2
. Другие привязки должны использовать vhost virtual-host-1
.
Однако значение binder
, похоже, игнорируется, и связыватель по умолчанию rabbit
учитывается с настройками по умолчанию при запуске приложения.
Я заметил это при отладке среды выполнения:
Значение binder
для каждой привязки равно NULL. Хотя значение явно указано в свойствах.
Если я установлю defaultCandidate
любого из подшивок на true
, тогда эти подшивки будут использоваться вместо стандартных по умолчанию.
Что-то неправильно настроено?