在redis的根目錄下,可以看到已經有了一個sentinel.conf配置文件,直接修改之:
修改配置文件:
vim sentinel.conf
增加以下內容:注意如有重復內容需要去掉
綁定外網訪問權限DNS路由2.2.3 啟動哨兵
可以看到,129/130作為從節點已經掛載到了128主節點下了
哨兵測試,將128shutdown,再看日志
主節點已經變成了130了!128再次啟動,已經不是主節點了:
bind 0.0.0.0
mymaster 主節點名,可以任意起名,但必須和后面的配置保持一致
2 為需要主服務器斷掉時需要2個sentinel同意(sentinel本身也可以集群)
sentinel monitor mymaster 192.168.223.128 6379 2
設置Sentinel認為服務器已經斷線所需的毫秒數
sentinel down-after-milliseconds mymaster 10000
設置failover(故障轉移)的過期時間。當failover開始后,在此時間內仍然沒有觸發任何failover
操作,當前 sentinel 會認為此次failover失敗
sentinel failover-timeout mymaster 60000
設置在執行故障轉移時, 最多可以有多少個從服務器同時對新的主服務器進行同步, 這個數字越小,表示
同時進行同步的從服務器越少,那么完成故障轉移所需的時間就越長。
sentinel parallel-syncs mymaster 1
啟動
把三臺redis服務跑起來
./bin/redis-server redis.conf
再啟動哨兵進程,哨兵啟動需要使用redis-sentinel啟動腳本啟動
./bin/redis-sentinel sentinel.conf
2020-08-04_110122.png
總結
哨兵模式的優缺點
優點:
1、當Master節點掛掉時,會通過vote算法從Slave節點中選舉出一個新的節點作為Master節點繼續工
作
2、任何一個數據的增刪改都需要Master節點處理,能保障數據的強一致性,符合CAP定理中的CP原則
缺點
1.主從服務器的數據要經常進行主從復制,這樣造成性能下降。
2.當主服務器宕機后,從服務器切換成主服務器的那段時間,服務是不可用的,降低了高可用性