為什么必然會出現選舉/共識機制?
為了避免哨兵的單點情況發生,所以需要一個哨兵的分布式集群。作為分布式集群,必然涉及共識問題(即選舉問題);同時故障的轉移和通知都只需要一個主的哨兵節點就可以了。
哨兵的選舉機制是什么樣的?
哨兵的選舉機制其實很簡單,就是一個Raft選舉算法: 選舉的票數大于等于num(sentinels)/2+1時,將成為領導者,如果沒有超過,繼續選舉
Raft算法你可以參看這篇文章分布式算法 - Raft算法
任何一個想成為 Leader 的哨兵,要滿足兩個條件:
,拿到半數以上的贊成票;
第二,拿到的票數同時還需要大于等于哨兵配置文件中的 quorum 值。
以 3 個哨兵為例,假設此時的 quorum 設置為 2,那么,任何一個想成為 Leader 的哨兵只要拿到 2 張贊成票,就可以了。