redis哨兵選舉條件

edis哨兵模式是redis的高可用架構的一種方式,它的出現是爲了解決主從模式下主節點掛了不能自動故障轉移的問題,下面是比較簡單的哨兵的架構
 
實際上手搭建過哨兵的同學應該知道,一個哨兵裏有個配置sentinel monitor mymaster 35.236.172.131 6379 1,但是也沒配置從的ip和其他哨兵的ip,其實他們都是通過主這臺機器來進行的關聯,主是多麼的重要啊
 
工作流程
   1。哨兵 去每隔 1秒鐘就像架構中所有的機器去ping一下,如果一臺機器距離最後一次ping命令的時間超過
      down-after-miliseconds配置的值就會被該哨兵標記爲主觀下線(SDOWN)
  2。如果哨兵標記了主服務器爲主觀下線,接下來他就會去問問其他的哨兵,喂 我說,主好像掛了,你們怎麼         看,其他哨兵:什麼!? 我們去看看
  3。當有足夠多的哨兵(過半)都認識主掛了,就把主改爲客觀下線(ODOWN)
  4。哨兵們坐在一起開始商量:丫掛了 我們應該選一個代理人出來當主啊,不然我們就是失職了,會被裁掉           的,這樣的我選擇我去做這件事吧。你們同意嗎?(哨兵選出leader)
  5。哨兵leader來再存活的從裏找一個出來成爲主,並且進行故障轉移
 
問題(重點)來了,哨兵leader是怎麼來選擇從成爲主呢?
  1.  過濾故障節點
  2. 根據優先級進行選擇,配置文件slave-priority  配置的信息,默認100 ,值最低成爲主
  3.  選擇複製偏移量最大的從爲主,這個是在主從複製時,主從都會維護一個自身的偏移量,可以簡單理解爲          消息id
redis哨兵選舉條件
  4.   選擇runid最小的從成爲主
runid可以通過info命令查看,redis每次重啓runid都會變動,值越小說明 重啓的時間越靠前
 
附一張流程圖
redis哨兵選舉條件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章