Zookeeper 容错到底是什么意思?同时还是累积?

what does Zookeeper fault tolerant exactly mean ? simultaneously Or accumulatively?

如 ZooKeeper 入门指南中所述,容错集群设置至少需要三台服务器,强烈建议您使用奇数台服务器。

所以如果我有 5 个服务器,如上所述,当其中 2 个时我仍然可以生存 failed.But 这意味着同时或累积 ??

那么这个怎么样:
5 个服务器 -> 失败一个 -> 4 个服务器 -> 失败一个 -> 3 个服务器 -> 失败一个 -> 2 个服务器 -> 失败一个 -> 死亡

而3台服务器(初始化)和3台服务器(5台服务器退化)有什么区别??

要使 Zookeeper 集群正常工作,它需要仲裁。法定人数是集群中的大多数服务器。

  • 对于 3 节点集群,大多数是 2 个节点。所以你只能容忍1个节点同时不同步。
  • 对于一个 5 节点的集群,大多数是 3 个节点。所以你只能容忍2个节点同时不同步。
  • 对于 7 节点集群,大多数是 4 个节点。所以你只能容忍3个节点同时不同步。

同步是什么意思?该节点不是法定人数的一部分,不仅是当它不是 运行 时。但也是在失败后仍在重新加入集群时。

节点在 Zookeeper 配置中是硬编码的。因此集群中的每个节点都知道它应该是具有 N 个节点的集群的一部分。因此,它不会像一个 7 节点集群(其中两个节点关闭)突然变成一个 5 节点集群并且另外 2 个节点可以关闭那样工作。它将始终表现为一个 7 节点集群,只有 3 个节点可以关闭,除非您更改配置文件。

关于节点的偶数和奇数的整个事情基本上是关于在维持法定人数的同时可以关闭的节点的数量。对于 4 节点集群,大多数将是 3。因此 4 节点集群仍然只能容忍 1 个节点停机。因此,使用与 3 节点集群具有相同容错能力的 4 节点集群没有多大意义。