duk*_*kyz 3 fault-tolerance apache-zookeeper
正如 ZooKeeper Getting Started Guide 中提到的,容错集群设置至少需要三台服务器,强烈建议您使用奇数台服务器。
因此,如果我有 5 个服务器,并且如上所述,当其中 2 个失败时,我仍然可以生存。但这意味着同时或累积?
那么这个怎么样:
5台服务器 -> 一台失败 -> 4 台服务器 -> 一台失败 -> 3 台服务器 -> 一台失败 -> 2 台服务器 -> 一台失败 -> 死
3台服务器有什么区别?初始化?和 3 个服务器(从 5 个服务器退化)??
为了让 Zookeeper 集群正常工作,它需要仲裁。仲裁是集群中的大多数服务器。
什么是同步是什么意思?该节点不仅在未运行时不属于仲裁。而且当它在失败后仍然重新加入集群时也是如此。
节点在 Zookeeper 配置中进行了硬编码。因此集群中的每个节点都知道它应该是具有 N 个节点的集群的一部分。因此,它不会以两个节点宕机的 7 节点集群突然变成 5 节点集群而另外 2 个节点可能宕机的方式工作。它将始终作为一个 7 节点集群运行,除非您更改配置文件,否则只有 3 个节点可以关闭。
关于偶数和奇数节点的整个事情基本上是关于在保持法定人数时可能关闭的节点数量。对于 4 节点集群,大多数将是 3 个。因此 4 节点集群仍然只能容忍 1 个节点宕机。因此,使用与 3 节点集群具有相同容错能力的 4 节点集群没有多大意义。