У меня есть кластер RabbitMQ с двумя узлами в производстве, и кластер ломается с этими сообщениями об ошибках:
= ОШИБКА ОТЧЕТА ==== 23-Дек-2011:: 04: 21: 34 ===
** Node кролик @rabbitmq02 не отвечает **
** Снятие (время) соединения **= ИНФОРМАЦИОННЫЙ ОТЧЕТ ==== 23-Дек-2011:: 04: 21: 35 ===
Node кролик @rabbitmq02 потерял "кролика"= ОШИБКА ОТЧЕТА ==== 23-Дек-2011:: 04: 21: 49 ===
Mnesia (кролик @rabbitmq01): ** ОШИБКА ** mnesia_event получил {inconsistent_database, running_partitioned_network, rabbit @rabbitmq02}
Я попытался имитировать проблему, убив соединение между двумя узлами с помощью "tcpkill", кластер отключился, и, как ни удивительно, эти два узла не пытаются подключиться!
Когда кластер прерывается, балансировщик нагрузки haproxy по-прежнему отмечает оба узла как активные и отправляет запрос обоим из них, хотя они не находятся в кластере.
Мои вопросы:
-
Если узлы настроены на работу в качестве кластера, когда я получаю сетевой сбой, почему они не пытаются повторно подключиться после?
-
Как определить разбитый кластер и выключение одного из узлов? У меня проблемы с согласованностью при работе с двумя узлами отдельно.