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



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

因此,如果我有 5 台服务器,如上所述,当其中 2 台出现故障时,我仍然可以生存。但这意味着同时或累积??

那么这个怎么样:
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 节点集群没有多大意义。

最新更新