Что это значит

Команда rabbitmqctl set_policy ... '{"ha-mode":"all"}' отклонена: брокер не знает параметров ha-mode, ha-sync-mode и других ключей с ha-. Это зеркалирование классических очередей, которое в RabbitMQ 4.0 удалено совсем (в примечаниях к выпуску 4.0: «classic queue mirroring was completely removed»). На версиях 3.13.x та же команда проходит с предупреждением об устаревшей функции, на 4.x уже нет. Проверено на RabbitMQ 4.4.0 в контейнере.

Так бывает, когда инструкцию по кластеру писали под 3.13, а брокер поставили или обновили до 4.x. В справке Directum RX 25.2 статья о кластере RabbitMQ для Linux (admin_cluster_rmq.htm) ставит 3.13.7 и задаёт политику ha-all с ha-mode: all, а в других статьях той же справки поставляется RabbitMQ 4.0. Подробный разбор в статье «Политика ha-all из справки RX не ставится на RabbitMQ 4».

Как проверить

rabbitmqctl version
rabbitmqctl list_policies -p <vhost>
rabbitmqctl list_queues -p <vhost> name type | awk '{print $2}' | sort | uniq -c

Первая команда покажет версию брокера, вторая уже заданные политики, третья типы очередей в виртуальном хосте. На 3.13 перед обновлением дополнительно:

rabbitmq-diagnostics check_if_cluster_has_classic_queue_mirroring_policy
rabbitmqctl list_feature_flags name state

Что сделать

  1. Не пытаться подобрать другое написание политики: на 4.x зеркалирования классических очередей нет ни в каком виде.
  2. Если нужен кластер именно по инструкции с ha-all, оставить брокер на 3.13.x и сверить версию с типовыми требованиями к ПО для вашей версии RX.
  3. Если нужна отказоустойчивость на 4.x, это кворумные очереди. Справка RX 25.2 не говорит, работает ли с ними RX и какой тип очереди объявляют сервисы, поэтому вариант сначала проверяют на тестовом стенде и уточняют у вендора.
  4. При обновлении 3.13 → 4.x заранее удалить политики с ключами ha- и включить все стабильные флаги функций. Без политики классические очереди остаются, но живут на одном узле.