Zookeeper 容错到底意味着什么?同时还是累计?

2024-04-29

正如 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 节点集群没有多大意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zookeeper 容错到底意味着什么?同时还是累计? 的相关文章

随机推荐