Redis集群架構中主節點選舉機制


Redi集群三主三從架構

選舉流程

1.每個slave會與自己的master通訊,當slave發現自己的master變為fail時。每個slave都會參與競爭,推舉自己為master。
2.增加currentEpoch的值,並且每個slave向集群中的其他所有節點廣播FAILOVER_AUTH_REQUEST。
3.其他master會受到多個slave的廣播,但是只會給第一個slave回復FAILOVER_AUTH_ACK。
4.slave接收到ack之后,會使用過半機制開始統計。即:當前有多少master給自己ack,如果超過一半的master發送ack,則成為master。
5.廣播PONG,通知給集群中的其節點。
至此,選舉流程結束。

思考

Redis集群中,為什么Master的數量要使用奇數?使用偶數是否可以?
答案是可以。但是因為采用過半機制的選舉流程,在高可用方面來說,與偶數是一致的。
例如:
在9個master的架構中,如果4台master故障,通過過半機制,redis可以選舉新的master。如果5台master故障無法選舉新的master
在10個master的架構中,如果4台master故障,通過過半機制,redis可以選舉新的master。如果5台master故障無法選舉新的master
在高可用方面,9台master與10台master一致。所以通常會使用奇數。假設現在reids內存不足需要拓展,我們將master的數量加到11台,就高可用方面來說,就算其中5台master發送故障,也可以自動選舉新的master。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM