Apache zookeeper 动物园管理员集群的动态构建

Apache zookeeper 动物园管理员集群的动态构建,apache-zookeeper,Apache Zookeeper,我想通过编程设置zookeeper集群。我的目标是将机器与CoreOS一起使用,以docker容器的形式动态部署三个节点,并将它们设置为一个zoo集群 除了manual(/zookeeperReconfig.html)中显示如何向现有的三节点集群添加另一个节点的常见设置外,我发现了一个对话,其中说明了当现有集群中没有运行的节点时,如何从一开始就这样做。不幸的是,这组步骤对我不起作用。我是说 以下是我执行的步骤列表: 运行standaloneEnabled=false的第一个节点,该节点是zoo.

我想通过编程设置zookeeper集群。我的目标是将机器与CoreOS一起使用,以docker容器的形式动态部署三个节点,并将它们设置为一个zoo集群

除了manual(/zookeeperReconfig.html)中显示如何向现有的三节点集群添加另一个节点的常见设置外,我发现了一个对话,其中说明了当现有集群中没有运行的节点时,如何从一开始就这样做。不幸的是,这组步骤对我不起作用。我是说

以下是我执行的步骤列表:

  • 运行standaloneEnabled=false的第一个节点,该节点是zoo.cfg.dynamic中的唯一条目
  • server.1=localhost:2381:2281:participant;0.0.0.0:2181

  • 使用以下动态cfg运行第二个节点:
  • server.1=localhost:2381:2281:participant;0.0.0.0:2181 server.2=localhost:2382:2282:observer;0.0.0.0:2182

    请注意,当我将第二个节点的“观察者”更改为“参与者”时,结果行为并没有区别

  • 现在我有两个正在运行的实例。我可以使用./zkCli.sh登录第一个节点。当我尝试使用以下命令添加第二个节点时:
  • reconfig-addserver.2=localhost:2382:2282:participant;0.0.0.0:2182

    。。。它失败于:

    KeepErrorCode=NewConfigNoQuorum for

    然而,经过一些研究,我找到了解决办法。但这很棘手,我不认为这是唯一正确的解决办法

    什么对我有用?我可以在第一个节点上再次执行步骤#3,但现在使用“观察者”。此命令导致即使第一个节点也知道第二个节点。当我在zkCli中向控制台键入“config”时,它似乎正在工作。下一步是使用zkCli和than exec命令登录到第二个节点:

    重新装配-拆卸2