Любая причина, почему RabbitMQ не создает обмен при запуске приложения? - PullRequest
0 голосов
/ 18 апреля 2020

У меня странное поведение RabbitMQ (как и у меня, конечно).

Когда я запускал веб-приложение с весенней загрузкой, в своей конфигурации я пытаюсь создать прямой обмен кроликами:

@Bean
    public DirectExchange exchange() {
        return new DirectExchange(directExchangeName);
    }

Но когда приложение запустилось, я не могу найти этот обменник в управлении RabbitMQ. Но это интересно, потому что в ApplicationContext я вижу этот компонент.

Этот обменник начинает показываться в управлении RabbitMQ после первого обращения к нему.

Я что-то упустил? Или это может быть проблема с моей конфигурацией?

1 Ответ

1 голос
/ 18 апреля 2020

Вам нужно RabbitAdmin @Bean, чтобы автоматически объявлять обмены, очереди, привязки.

И даже тогда объявления не произойдут, пока какой-то компонент (контейнер слушателя, шаблон) не откроет соединение ; админ регистрируется как слушатель соединения.

...