Redis哨兵模式詳談

Redis可以存在多臺服務器,並且實現了主從複製的功能。哨兵模式是一種特殊的模式,首先Redis提供了哨兵的命令,哨兵是一個獨立的進程,作爲進程,他會獨立運行。其原理是哨兵通過發送命令,等待Redis服務器響應,從而監控運行的多個Redis實例,如下圖所示:
在這裏插入圖片描述

這裏的哨兵有兩個作用:

  • 通過發送命令,讓Redis服務器返回監測其運行狀態,包括主服務器和從服務器。
  • 當哨兵檢測到master宕機,會自動將slave切換爲master,然後通過發佈訂閱模式通知到其他的從服務器,修改配置文件,讓它們切換主機。

只是現實中一個哨兵進程對Redis服務器進行監控,也可能出現問題,爲了處理這個問題,還可以使用多個哨兵的監控,而各個哨兵之間也會互相監控,這樣就變爲了多個哨兵模式。
現在我們來論述一下故障切換的過程。假設主服務器宕機,哨兵1先檢測到這個結果,當時系統並不會馬上進行failover操作,而僅僅是哨兵1主觀的認爲主機已經不能用,這個現象叫做主觀下線。當後面的哨兵監測頁檢測到主服務器不可用,並且有了一定數量的哨兵認爲主機已經宕機,那麼哨兵之間會形成一次投票,投票的結果由一個哨兵發起,進行failover操作,在failover操作的過程中切換成功後,就會通過發佈訂閱方式,讓各個哨兵把自己監控的服務器實現切換主機,這個過程叫做客觀下線。

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