Как управлять отработкой отказа в ZooKeeper через центры обработки данных с помощью наблюдателей

У меня есть приложение, работающее в 3 разных центрах обработки данных, которое использует ZooKeeper для многих задач. Следуя рекомендуемым методам, мы развернули три ансамбля ZooKeeper, в которых один центр обработки данных содержит общие экземпляры ZooKeeper, а два других являются только наблюдателями первого центра данных.

DC1: Usual leader/follower ensemble
DC2: Observers of DC1
DC3: Observers of DC1

Как объяснено в документации ZooKeeper, только машина-лидер может принимать запросы на запись, поэтому подписчики и наблюдатели будут перенаправлять эти сообщения в первую очередь. В случае, если лидер перестает отвечать на запросы, доступным последователем будет выбран новый лидер, а ансамбль ZooKeeper останется без изменений.

Однако я не нашел никаких ссылок на то, как мы могли бы управлять целыми центрами обработки данных в автономном режиме. Например, если наш ансамбль лидеров / последователей в центре обработки данных 1 недоступен, как мы можем сделать так, чтобы второй центр обработки данных стал основным с обычными машинами лидеров / последователей? Должен ли я отключить узел, изменить его файл конфигурации, чтобы он стал обычным узлом, снова включить его, а затем заменить все остальные компьютеры ZooKeeper, чтобы следовать за этим лидером? Есть ли автоматическая система для этого?

0 ответов