gpt4 book ai didi

java - 两节点 ZooKeeper 集成

转载 作者:行者123 更新时间:2023-12-05 03:13:46 25 4
gpt4 key购买 nike

我们有一个只有两个数据中心的设置,每个数据中心只有一台机器,我们希望将 ZooKeeper 节点部署到这两台机器上,并将它们集群化。我们无法向集群添加任何新机器。

目前我们有两个 ZooKeeper 节点 A 和 B,一个在机器 A 上,一个在机器 B 上。我们必须能够容忍单个机器的故障,另一个 ZooKeeper 实例必须保持可操作。

我从 ZooKeeper 文档中了解到,建议至少使用三个节点 - 因为协调机制需要大多数节点处于 Activity 状态才能继续(在这种情况下为两个)。

我的问题是 - 是否有可能获得仅由两个节点组成的高可用性 ZooKeeper 部署?

最佳答案

没有。如果 Zookeeper 2 个节点不够用。即使您的一个节点出现故障,其余节点也无法判断它是已关闭还是只是分区。这会导致不一致,即大脑 split 的情况,因为他们都将继续为他们的客户提供服务。

我不确定 Zookeeper 是否会形成集群或仅以独立模式运行。查看此答案:Zookeeper running on two nodes

在您的情况下,只有 2 台机器,您可以考虑在其中一台机器上放置第二个 Zookeeper 实例并构建一个 3 节点集群。

这在容错方面对您没有多大好处。这类似于在具有第二个实例的机器上运行独立的 ZK。它可能会加快读取请求的速度,或者让您在增长到 3 台或更多机器后更容易迁移到适当的集群设置。它还会增加您的操作复杂性和写入速度。

您还可以研究分层仲裁和观察者,它们可能对跨多个数据中心的集群有用。

关于java - 两节点 ZooKeeper 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28808653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com