Можно ли автоматически создавать очереди без RabbitAutoConfiguration.class?AMQP - PullRequest
0 голосов
/ 17 мая 2019

Я использую 2.1.0.RELEASE версию загрузки Spring с AMQP. К сожалению, мне нужно подключиться к нескольким различным серверам RabbitMQ. Мне пришлось исключить RabbitAutoConfiguration.class, потому что из-за изменений в вышеприведенной версии Spring невозможно запустить без одного из компонентов ConnectionFactory в качестве основного, но даже если я установил один из них как @Primary, очевидно, он не работает, потому что как amqp / spring-boot узнает, какую очередь создавать на каком сервере ...

Итак, возможно ли автоматически создавать очереди на разных серверах с отключенной автоматической настройкой?

1 Ответ

2 голосов
/ 17 мая 2019

Да, вам нужно RabbitAdmin для каждой фабрики соединений.

По умолчанию все компоненты будут объявлены на всех посредниках, но вы можете добавить условия.См. Условное объявление .

По умолчанию все очереди, обмены и привязки объявляются всеми экземплярами RabbitAdmin (при условии, что они имеют auto-startup="true") в контексте приложения.

@Bean
public Queue queue1() {
    Queue queue = new Queue("foo");
    queue.setAdminsThatShouldDeclare(admin1());
    return queue;
}
...