3.2.5 Redis哨兵高可用機制

哨兵(Sentinel)機制核心作用

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

核心運作流程

在這裏插入圖片描述

七大核心概念

在這裏插入圖片描述

哨兵啓動和配置

在這裏插入圖片描述
sentinel-26380.conf中的內容

# 配置文件:sentinel.conf,在sentinel運行期間是會被動態修改的
# sentinel如果重啓時,根據這個配置來恢復其之前所監控的redis集羣的狀態
# 綁定IP
bind 0.0.0.0
# 後臺運行
daemonize yes
# 默認yes,沒指定密碼或者指定IP的情況下,外網無法訪問
protected-mode no
# 哨兵的端口,客戶端通過這個端口來發現redis
port 26381
# 哨兵自己的IP,手動設定也可自動發現,用於與其他哨兵通信
# sentinel announce-ip
# 臨時文件夾
dir /tmp
# 日誌
logfile "/var/log/redis/sentinel.log"
# sentinel監控的master的名字叫做mymaster,初始地址爲 192.168.100.241 6380,2代表兩個及以上哨兵認定爲死亡,才認爲是真的死亡
sentinel monitor redis-1 192.168.0.102 6380 2
# 發送心跳PING來確認master是否存活
# 如果master在“一定時間範圍”內不迴應PONG 或者是回覆了一個錯誤消息,那麼這個sentinel會主觀地(單方面地)認爲這個master已經不可用了
sentinel down-after-milliseconds redis-1 1000
# 如果在該時間(ms)內未能完成failover操作,則認爲該failover失敗
sentinel failover-timeout redis-1 3000
# 指定了在執行故障轉移時,最多可以有多少個從Redis實例在同步新的主實例,在從Redis實例較多的情況下這個數字越小,同步的時間越長,完成故障轉移所需的時間就越長
sentinel parallel-syncs redis-1 1

啓動容器

與啓動redis容器類似,啓動一個別名爲sentinel的容器

docker run -it --name sentinel-1 -p 26380:26380 -p 6379:6379 -v /root/sentinel-26380.conf:/usr/local/etc/redis/sentinel.conf -d redis /bin/bash

進入容器

docker exec -it sentinel-1 bash

創建日誌目錄和文件

mkdir /var/log/redis

touch /var/log/redis/sentinel.log

啓動哨兵
redis-sentinel /usr/local/etc/redis/sentinel.conf

查看日誌,哨兵成功監聽到一主和兩從的機器

哨兵如何知道Redis主從信息

在這裏插入圖片描述

什麼是主觀下線(sdown)

在這裏插入圖片描述

哨兵之間如何通信

在這裏插入圖片描述

什麼是客觀下線(odown)

在這裏插入圖片描述

哨兵領導選舉機制

在這裏插入圖片描述

slave選舉方案

在這裏插入圖片描述

最終主從切換的過程

在這裏插入圖片描述

哨兵服務部署方案

在這裏插入圖片描述

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