redis集羣-sentinel---哨兵模式

1、哨兵簡介:Redis Sentinel

Sentinel(哨兵)是用於監控redis集羣中Master狀態的工具,其已經被集成在redis2.4+的版本中是Redis官方推薦的高可用性(HA)解決方案。

2、作用

1):Master狀態檢測
2):如果Master異常,則會進行Master-Slave切換,將其中一個Slave作爲Master,將之前的Master作爲Slave
3):Master-Slave切換後,sentinel.conf的監控目標會隨之調換

3、工作模式

1):每個Sentinel以每秒鐘一次的頻率向它所知的Master,Slave以及其他 Sentinel 實例發送一個 PING 命令

2):如果一個實例(instance)距離最後一次有效回覆 PING 命令的時間超過 down-after-milliseconds 選項所指定的值, 則這個實例會被 Sentinel 標記爲主觀下線。

3):如果一個Master被標記爲主觀下線,則正在監視這個Master的所有 Sentinel 要以每秒一次的頻率確認Master的確進入了主觀下線狀態。

4):當有足夠數量的 Sentinel(大於等於配置文件指定的值)在指定的時間範圍內確認Master的確進入了主觀下線狀態, 則Master會被標記爲客觀下線 。

4、主觀下線和客觀下線

主觀下線:Subjectively Down,簡稱 SDOWN,指的是當前 一個Sentinel 實例對某個redis服務器做出的下線判斷。
客觀下線:Objectively Down, 簡稱 ODOWN,指的是多個 Sentinel 實例在對Master Server做出 SDOWN 判斷,並且通過 SENTINEL is-master-down-by-addr 命令互相交流之後,得出的Master Server下線判斷,然後開啓failover

5、配置哨兵模式

1.每臺機器上修改redis主配置文件redis.conf文件設置:bind 0.0.0.0   ---已經操作
做主從同步
2.每臺機器上修改sentinel.conf配置文件:修改如下配置
[root@redis-master src]# cd ..
[root@redis-master redis]# vim sentinel.conf
sentinel monitor mymaster 10.0.0.137 6379 2 #當集羣中有2個sentinel認爲master死了時,才能真正認爲該master已經不可用了。 (slave上面寫的是master的ip,master寫自己ip)
sentinel down-after-milliseconds mymaster 3000   #單位毫秒  ping 3000毫秒沒有響應 認爲他不可用
sentinel failover-timeout mymaster 10000   #若sentinel在該配置值內未能完成failover(故障轉移)操作(即故障時master/slave自動切換),則認爲本次failover失敗。
protected-mode no  #關閉加密模式--新添加到sentinel配置文件中
3.每臺機器啓動哨兵服務:
[root@redis-master redis]# ./src/redis-sentinel sentinel.conf  &
注意:在生產環境下將哨兵模式啓動放到後臺執行:     ./src/redis-sentinel sentinel.conf &

src/redis-cli 進去後 info  replication  可以查看狀態

在這裏插入圖片描述
在這裏插入圖片描述

將master的哨兵模式退出(Crtl+c),再將redis服務stop了,在兩臺slave上面查看其中一臺是否切換爲master:(沒有優先級,爲隨機切換)

在這裏插入圖片描述

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