在2个节点的集群上运行zookeeper

时间:2017-04-08 22:20:20

标签: apache-zookeeper

我目前正在尝试在双节点群集中使用zookeeper。我根据配置在节点上运行自己的集群编队算法。我们只需要Zookeeper的分布式数据库功能。

  1. 是否可以在双节点群集中使用Zookeeper?你知道有任何解决方案吗?
  2. 我们是否仍然可以保留zookeepers数据库功能,而不会形成法定人数?
  3. 注意:容错不是此项目的主要关注点。如果其中一个节点出现故障,我们就有足够的代码逻辑在没有zookeeper服务的情况下运行。当两个节点都处于活动状态时,我们使用zookeeper来共享数据。

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Zookeeper是一个协调系统,主要用于协调节点之间的协调。当对这样的分布式系统进行写入时,为了协调并协商存储的值,所有写入都经过master (aka leader)。读取可以通过任何节点进行。 Zookeeper要求每个法定人数选择一个主/领导者,以便始终如一地提供写请求。 Zookeeper使用ZAB protocol作为一致性算法。

  1. 为了选出一个领导者,理想情况下,法定人数应该具有奇数个节点(否则,一个节点将无法赢得多数并成为领导者)。在你的情况下,有两个节点,zookeeper很可能不会长时间选出一个领导者,因为两个节点都是候选节点并等待另一个节点投票。即使他们选出了领导者,你的整体也无法在网络化的情况下正常工作。
  2. 正如我所说,zookeeper不是分布式存储。如果您需要以分布式方式(多个节点)使用它,则需要形成法定人数。
  3. 如我所见,您需要的是分布式数据库。不是分布式协调系统。