我试图了解Zookeeper使用这本书 - Zookeeper By Flavio Junqueira, Benjamin Reed,提到我们需要为仲裁选择大多数服务器,如下所述:
假设我们使用四台服务器作为整体。大多数服务器是 由三台服务器组成。但是,这个系统只能容忍一个 单一崩溃,因为双重崩溃使系统失去多数。 因此,有了四台服务器,我们只能容忍一次崩溃, 但现在法定人数更多,这意味着我们需要更多 每个请求的确认。最重要的是我们应该 总是为奇数个服务器拍摄。
请帮助我理解这一点。
我们如何为给定的整体选择大多数服务器?
为什么这句话说现在的法定人数更多,为什么我们需要为每个请求提供更多的确认?
答案 0 :(得分:0)
这只意味着应该考虑更多的服务器,而不应该考虑集合中的每个服务器,或者更多的服务器确认消息接收,而不是那些服务器。使用4台服务器,您需要3台服务器才能满足这一条件,只需3台服务器。在每种情况下,您只能容忍一台服务器发生故障,群集仍然无法启动。 4节点集群更糟糕,因为您现在有一个额外的服务器,基本上不会使您的集群比3节点集群更容错。
此外,如果您有3个节点,则只需要2个确认即可满足法定人数要求。 4,你需要3个ack。这将导致集群速度变慢。这就是'因此,有四台服务器......'声明意味着。