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 –