RabbitMQ настраивает HA очереди через Spring RabbitAdmin

Я хотел бы выяснить: есть ли способы настроить зеркальное отображение RabbitMQ (очереди HA), используя только код Java Spring. У AFAIK есть специальный класс RabbitAdmin для таких проблем конфигурации, но он не может точно определить, как настроить зеркалирование очередей, используя его. Можно ли как-то настроить очереди HA в Java Spring?

Спасибо заранее.

1 ответ

Решение

Начиная с RabbitMQ 3.0, вы больше не можете устанавливать зеркальное отображение, используя аргументы очереди:

Ломка вещей с RabbitMQ 3.0.

Теперь вы должны использовать политику на брокера.

Политика зеркальной очереди

Что изменилось? В RabbitMQ 3.0 зеркалирование очереди больше не контролируется x-ha-policy аргумент при объявлении очереди. Ваши приложения могут продолжать объявлять этот аргумент, но это не приведет к зеркальному отображению очередей. Вместо этого вы можете объявить одну или несколько политик, которые контролируют, какие очереди и как зеркалируются.

Почему это изменилось? Как скажет любой, кто использовал зеркальные очереди, требовать, чтобы приложения знали, какие очереди зеркально отражаются, - это боль. Новый подход помещает конфигурацию в брокер, где он принадлежит, а также поддерживает изменение политики зеркалирования в любое время.

Что я должен делать? Вы должны убедиться, что ваши очереди все еще отражены. Полную документацию смотрите здесь, но если вы просто хотите убедиться, что все очереди (кроме тех, которые имеют автоматически сгенерированные имена) зеркально отражены на всех узлах, запустите:

rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'

В более ранних версиях вы могли настроить его с помощью RabbitAdmin,

Другие вопросы по тегам