RabbitMQ queue-master-locator не работает при остановке одного узла

Мы исследуем политику min-masters 'queue-master-locator', и похоже, что она работает нормально, когда мы создаем новые очереди, но когда по какой-то причине нам нужно остановить один узел кластера, все очереди, существующие на этом узле получить повышение (мастер) на тот же узел, например:

Узел A имеет 30 очередей Узел B имеет 0 очередей Узел C имеет 2 очереди Узел D имеет 3 очереди

Когда мы останавливаем Узел A, все 30 очередей повышаются до Узла B, это ожидаемый результат? Мы надеялись, что 30 очередей будут распределены по узлам B, C и D...

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

Наша политика определяется следующим образом:

Политики листинга... prod ha queues ^ {"ha-mode":"точно","ha-params":3,"ha-sync-mode":"автоматический","queue-master-locator":"min-masters"}

У нас есть 4 узла в кластере, 2 узла оперативной памяти и 2 дисковых узла.

Политика прекрасно работает, когда мы создаем новые очереди, но ничего не делает, когда мы останавливаем один узел.

Спасибо

2 ответа

Согласно официальной документации:

Если мастер выходит из строя […], самое продолжительное зеркало становится мастером

И причина просто следующая:

Предполагается, что он, скорее всего, будет полностью синхронизирован с мастером.

https://www.rabbitmq.com/ha.html

Команда RabbitMQ контролирует rabbitmq-users список рассылки и только иногда отвечает на вопросы здесь.

Я только что опробовал ваш конкретный сценарий, используя последний предварительный код для 3.6.13 и я могу воспроизвести это. Проблема заключается в том, что RabbitMQ не перемещает существующие мастера очередей в балансировки очередей - он будет перемещать только те очереди, мастер которых существовал на вышедшем из строя узле. Я открыл эту проблему, чтобы рассмотреть то, что вы сообщаете здесь.

Этот неподдерживаемый сценарий можно использовать для перебалансировки хозяев очереди в кластере. Если у вас есть проблемы с запуском скрипта, пожалуйста, напишите rabbitmq-users и я увижу это

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