redis入門到精通系列(九):redis哨兵模式詳解

(一)哨兵概述

前面咱們講了redis的主從複製,爲了實現高可用,會選擇一臺服務器做爲master,多臺服務器做爲slave。如今有這樣一種狀況,master宕機了,這時系統會選擇一臺slave做爲master,而後把宕機的master下線,再通知全部slave新的master是誰。這裏就產生了一個問題,master是否宕機、選擇哪臺slave做爲master都是誰來決定的?linux


在主從複製中由哨兵(sentinel)來完成這些操做,哨兵是一個分佈式系統,用於對主從結構中的每臺服務器進行監控,當出現故障時經過投票機制選擇新的master。redis


哨兵也是一臺redis服務器,一般配置哨兵數量爲單數(競選時避免打平)。服務器


(二)哨兵的做用

1.監控:不斷檢查master和slave是否正常運行;master存活檢測;master與slave運行狀況檢測app

2.通知:當被檢測服務器出現問題時,向其餘哨兵和客戶端發送通知分佈式

3.自動故障轉移:斷開master和slave鏈接,選取一個新的slave爲master,將其餘slave鏈接到新的master上ide


(三)哨兵的工做原理


3.1 監控階段

監控是哨兵的做用之一,監控是爲了同步各個節點的狀態信息spa

1.獲取其餘各個哨兵的狀態(是否在線),經過ping命令orm

2.獲取master的狀態,主要包括master的runid,各個slave的詳細信息等等,經過info指令對象

3.獲取全部的slave的狀態(根據master中的slave信息),主要包括slave的runid,role,host,offset等等。blog

當兩個sentinel分別獲取到master或slave的監控信息後,爲了數據的同步會相互交流數據,一樣當第三個sentinel得到監控信息後,也會和另外兩個sentinel互相同步數據。


3.2 通知階段

通知階段主要是各個sentinel的相互交流,假設一個系統有三個sentinel,當sentinel1詢問主從服務器狀態而且獲得回覆以後,他會他消息告訴sentinel2和sentinel3。一樣的當sentinel2獲得消息後也會告訴1和3。使得數據始終同步。


3.3 故障轉移階段

當一臺master宕機了,這就進入了故障轉移階段。


1.首先一個sentinel發現給master不迴應消息,因而把這個master的狀態設置爲sdown,並通知給其餘的sentinel。其餘的sentinel就會發送hello給該master,當一半以上(能夠設置)的sentinel以爲這個master確實宕機了,因而master的狀態就被設置爲odown,這就進入了第二步。


2.既然master宕機了,那就須要選舉新的master,哪一個sentinel去選擇master,須要通過sentinel內部的投票機制來實現。當選出去執行找出新master的sentinel後,進入第三步。


3.sentinel從slave中選擇一個當成新的master有如下原則 淘汰未在線的 淘汰響應慢的 淘汰與原master斷開時間久的 最終在剩下的slave中根據優先級,offset等選擇一臺成爲新master


4.sentinel向新的master發送指令:


slaveof no one

向其餘slave發送指令


slaveof 新masterIP 端口

(四)哨兵的操做

關於哨兵的操做建議在linux服務器下操做

開啓哨兵:


redis-sentinel sentinel.conf (配置的文件名自定義)

配置文件


port 26379dir /tmpsentinel monitor mymaster 127.0.0.1 6379 2  #設置哨兵監控的主機爲127.0.0.1:6379,當2臺哨兵認爲宕機後則認爲該主機宕機sentinel down-after-milliseconds 30000   #鏈接多長時間未響應就認爲被監控服務器宕機parallel-syncs mymaster 1  #指定了在執行故障轉移時, 最多能夠有多少個從服務器同時對新的主服務器進行同步failover-timeout mymaster 180000  #指定了故障轉移的同步超時時間

sentinel monitor mymaster 127.0.0.1 6379 2:127.0.0.1 6379表示該哨兵監控的對象,其中mymaster是本身定義的一個名字,最後一位2表示當有2個哨兵認爲這個被監控服務器宕了,就確認該服務器宕機。這一位的取值每每是哨兵數量/2+1,即一半以上。當主機宕機後,哨兵會自動從從機中選出一臺當成主機


圖片
相關文章
相關標籤/搜索