Основной узел Rabbitmq воссоединяется с кластером

У меня есть кластер из 3 узлов rabbitmq, разбросанных по 3 разным серверам. Второй и третий узлы присоединяются к первому узлу и образуют кластер. В процессе тестирования на отказоустойчивость я обнаружил, что после уничтожения основного узла я не могу заставить его присоединиться к кластеру. В документации не указано, что я должен использовать join_cluster или любую другую команду после запуска. Я попробовал join_cluster, но он был отклонен, так как кластер с именем совпадает с хостом узла. Есть ли способ заставить это работать?

cluster_status отображает следующее (не от основного узла):

Cluster status of node 'rabbit@<secondary>' ...
[{nodes,[{disc,['rabbit@<primary>','rabbit@<secondary>',
                'rabbit@<tertiary>']}]},
 {running_nodes,['rabbit@<secondary>','rabbit@<tertiary>']},
 {cluster_name,<<"rabbit@<primary>">>},
 {partitions,[]}]

person sharman    schedule 12.04.2016    source источник


Ответы (2)


Цитата из здесь

Узлы, присоединенные к кластеру, можно остановить в любой момент. Это также нормально, что они разбиваются. В обоих случаях остальная часть кластера продолжает работать без изменений, и узлы автоматически «догоняют» другие узлы кластера при повторном запуске.

Так что вам просто нужно запустить узел, который вы убили/остановили. Не имеет значения, «первичный» он или нет — если он был первичным, а затем убит, какой-то другой узел становится первичным.

Я только что проверил это (конечно, с докером) и работает так, как ожидалось.

person cantSleepNow    schedule 13.04.2016
comment
Не для меня. Как показано в сообщении выше. Он не показывает основной узел как работающий. - person sharman; 13.04.2016

На одном из узлов, входящих в кластер, используйте команду

rabbitmqctl forget_cluster_node rabbit@rabbitmq1

Чтобы текущий кластер забыл старый основной. Теперь вы сможете присоединиться к кластеру на старом первичном сервере (rabbitmq1).

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq2
rabbitmqctl start_app

См. справочное руководство по кластеру.

person Martin Neiiendam    schedule 04.04.2017