0
我花了一点时间研究Consul。我读过关于共识协议的内容。我看到如果Consul集群想要可用,它需要一个法定人数的服务器节点来选举领导者。我想知道当consul集群运行少于一定数量的节点时,为什么它不使用剩余运行的节点呢? 任何人都可以为我回答?非常感谢你Consul.IO - 为什么Consul集群至少需要服务器节点的法定人数才能激活
我花了一点时间研究Consul。我读过关于共识协议的内容。我看到如果Consul集群想要可用,它需要一个法定人数的服务器节点来选举领导者。我想知道当consul集群运行少于一定数量的节点时,为什么它不使用剩余运行的节点呢? 任何人都可以为我回答?非常感谢你Consul.IO - 为什么Consul集群至少需要服务器节点的法定人数才能激活
法定人数是确保你永远不会有不一致的结果。否则,八个节点集群(A B C D E F G H)
可能会出现网络故障并被分区为两个集群(A B C D) (E F G H)
。这两个集群然后做出两个不相容的决定(比如更新某些配置的相同属性)。当分区被修复时,无法合并这两个更改。
如果需要达到法定人数,那么您知道任何法定人数都至少有一个决策副本;因此任何冲突都会被至少一个节点发现并被禁止。
我明白了你的想法,但我仍然困惑的一件事是领事集群的高可用性。为什么至少需要一定数量的法定人数才能选举新领导人? –
法定人数用于确保只有一个分区的一方可以做出决定(换句话说,选举领导人)。如果集群允许少于法定人数的节点作出决定,那么双方可以做出决定。例如,如果八节点群中的三个节点被允许决定领导者是谁,那么三个选举一个领导者和不同的三个选举另一个可能是可能的。要求法定人数作出领导是谁的决定,可以确保只有一方可以做出决定,因为只有一方可以拥有多数。 – kuujo
很好的答案,非常感谢:D –