關於Redis sentinel哨兵高可用選舉master的幾個技術細節知識問與答

Redis Sentinel應用Raft協議來解決分佈式系統一致性問題,即選舉redis master的問題。我們在使用redis哨兵架構時,經常強調哨兵節點數量需要設置爲3或5或7。假定哨兵節點數量爲N,那麼quorum票數就設置爲N/2+1 。

實際的業務情況有很多變化,部署規模也不等,在設計Redis哨兵高可用架構時如果沒留意其中的一些細節,很容易進坑。所以我結合實際工作經驗設計出下面這樣一道題目,通過具體使用場景結合提問的形式,促進大家思考和掌握其中蘊含的知識。

題目

假定有4個主機,分別各部署一個redis和一個哨兵,組成4節點的哨兵架構。
那麼:
1、如果quorum設置爲1

  • 網絡通信均正常的條件下,可以正常選舉master嗎?
  • 網絡通信均正常的條件下,如果此時有2個哨兵進程當機了,還能正常選舉出新的redis master嗎?
  • 如果我們的4個哨兵是這樣部署的,A機房2個,B機房2個,兩個機房使用專線連通,如果這時專線中斷了,請問A、B機房中哨兵會表現出什麼樣的選舉行爲?

2、如果quorum設置爲2

  • 網絡通信均正常的條件下,可以正常選舉master嗎?
  • 網絡通信均正常的條件下,如果此時有2個哨兵進程當機了,還能正常選舉出新的redis master嗎?
  • 如果我們的4個哨兵是這樣部署的,A機房2個,B機房2個,兩個機房使用專線連通,如果這時專線中斷了,請問A、B機房中哨兵會表現出什麼樣的選舉行爲?
  • 如果我們的4個哨兵是這樣部署的,A機房1個,B機房3個,兩個機房使用專線連通,如果這時專線中斷了,請問A、B機房中哨兵會表現出什麼樣的選舉行爲和結果?

3、如果quorum設置爲3

  • 網絡通信均正常的條件下,可以正常選舉master嗎?
  • 網絡通信均正常的條件下,如果此時有2個哨兵進程當機了,還能正常選舉出新的redis master嗎?
  • 如果我們的4個哨兵是這樣部署的,A機房2個,B機房2個,兩個機房使用專線連通,如果這時專線中斷了,請問A、B機房中哨兵會表現出什麼樣的選舉行爲?
  • 如果我們的4個哨兵是這樣部署的,A機房1個,B機房3個,兩個機房使用專線連通,如果這時專線中斷了,請問A、B機房中哨兵會表現出什麼樣的選舉行爲和結果?

答案

晚幾天再公佈,給大家留些自己思考和交流答案的時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章