Apache zookeeper 如何使用观察者跨数据中心管理ZooKeeper中的故障切换

Apache zookeeper 如何使用观察者跨数据中心管理ZooKeeper中的故障切换,apache-zookeeper,distributed-computing,high-availability,failover,automatic-failover,Apache Zookeeper,Distributed Computing,High Availability,Failover,Automatic Failover,我有一个应用程序在3个不同的数据中心运行,它使用ZooKeeper执行许多任务。按照推荐的实践,我们部署了三个ZooKeeper集成,其中一个数据中心包含常见的ZooKeeper实例,另外两个仅属于第一个数据中心 DC1: Usual leader/follower ensemble DC2: Observers of DC1 DC3: Observers of DC1 正如ZooKeeper的文档中所解释的,只有leader机器能够接受写请求,因此追随者和观察者会首先将这些消息路由到lead

我有一个应用程序在3个不同的数据中心运行,它使用ZooKeeper执行许多任务。按照推荐的实践,我们部署了三个ZooKeeper集成,其中一个数据中心包含常见的ZooKeeper实例,另外两个仅属于第一个数据中心

DC1: Usual leader/follower ensemble
DC2: Observers of DC1
DC3: Observers of DC1
正如ZooKeeper的文档中所解释的,只有leader机器能够接受写请求,因此追随者和观察者会首先将这些消息路由到leader。如果领队反应迟钝,一名可用的跟随者将被选为新领队,而动物园管理员团队将继续工作

然而,我还没有找到任何关于如何管理整个数据中心离线的参考资料。例如,如果我们在数据中心1上的leader/follower集合不可用,我们如何使第二个数据中心成为使用常规leader/follower机器的主要数据中心?我是否必须关闭一个节点,将它们的配置文件更改为普通节点,再次打开它,然后替换所有其他ZooKeeper机器以跟随这个领导者?有自动系统吗