Spring sentinel哨兵模式相關原理解析

2022-09-28 06:33:13 字數 2138 閱讀 8468

1. sentinel作用

1. 當用redis做主從方案時,假如master宕機,redis本身無法自動進行主備切換

2. 而redis-sentinel本身也是乙個獨立執行的程序,它能監控多個master-sl**e集群,發現master宕機後能進行自動切換。

2. sentinel原理

1. sentinel負責持續監控主節點的健康,當主節掛掉時,自動選擇乙個最優的從節點切換成主節點

2. 從節點來連線集群時會首先連線sentinel,通過sentinel來查詢主節點的位址

3. 當主節點發生故障時,sentinel會將最新的主節點位址告訴客戶端,可以實現無需重啟自動切換redis

3. sentinel支援集群

1. 只使用單個sentinel程序來監控redis集群是不可靠的,當sentinel程序宕掉後sentinel本身也有單點問題

2. 如果有多個sentinel,redis的客戶端可以隨意地連線任意乙個sentinel來獲得關於redis集群中的資訊。

4. sentinel版本

1. sentinel當前穩定版本稱為sentinel 2,redis2.8和redis3.0附帶穩定的哨兵版本

2. 安裝完redis-3.2.8後,redis-3.2.8/src/redis-sentinel啟動程式 redis-3.2.8/sentinel.conf是配置檔案。

5. 執行sentinel兩種方式(效果相同)

法1:redis-sentinel /path/to/sentinel.conf

法2:redis-server /path/to/sentinel.conf --sentinel

1. 以上兩種方式,都必須指定乙個sentinel的配置檔案sentinel.conf,如果不指定,將無法啟動sentinel。

2. sentinel預設監聽26379埠,所以執行前必須確定該埠沒有被別的程序占用。

6. sentinel.conf配置檔案說明

1. 配置檔案只需要配置master的資訊就好啦,不用配置sl**e的資訊,因為sl**e能夠被自動檢測到

2. www.cppcns.com需要注意的是,配置檔案在sentinel執行期間是會被動態修改的,例如當發生主備切換時候,配置檔案中的master會被修改為另外乙個sl**e。

3. 這樣,之後sentinel如果重啟時,就可以根據這個配置來恢復其之前所監控的redis集群的狀態。

# sentinel.conf 配置說明

sentinel monitor mymaster 127.0.0.1 6379 2

sentinel down-after-milliseconds mymaster 60000

sentinel failover-timeout mymaster 180000

sentinel parallel-syncs mymaster 1

7. 配置傳播

1. 一旦乙個sentinel成功地對乙個master進行了failover,它將會把關於master的最新配置通過廣播形式通知其它sentinel,其它的sentinel則更新對應master的配置。

2. 乙個faiover要想被成功實行,sentinel必須能夠向選為master的sl**e傳送sl**e of no one命令,然後能夠通過info命令看到新master的配置資訊。

3. 當將乙個sl**e選舉為master並傳送sl**e of no one`後,即使其它的sl**e還沒針對新master重新配置自己,failover也被認為是成功了的。

因為每乙個配置都有乙個版本號,所以以版本號最大的那個為標準:

1)假設有乙個名為mymaster的位址為192.168.1.50:6379。

2)一開始,集群中所程式設計客棧有的sentinel都知道這個位址,於是為mymaster的配置打上版本號1。

3)一段時候後mymaster死了,有乙個sentinel被授權用版本號2對其進行failover。

4)如果failo程式設計客棧ver成功了,假設位址改為了192.168.1程式設計客棧.50:9000,此時配置的版本號為2

5)進行failover的sentinel會將新配置廣播www.cppcns.com給其他的sentinel,發現新配置的版本號為2時,版本號變大了,說明配置更新了,於是就會採用最新的版本號為2的配置。

本文位址:

關於監視哨

哨兵的作用 演算法中引進的附加記錄r 0 稱監視哨或哨兵 sentinel 哨兵有兩個作用 進人查詢 插入位置 迴圈之前,它儲存了r i 的副本,使不致於因記錄後移而丟失r i 的內容 它的主要作用是 在查詢迴圈中 監視 下標變數j是否越界。一旦越界 即j 0 因為r 0 key和自己比較,迴圈判定...

Zookeeper實現Master選舉(哨兵機制)

master選舉使用場景及結構 現在很多時候我們的服務需要7 24小時工作,假如一台機器掛了,我們希望能有其它機器頂替它繼續工作。此類問題現在多採用master salve模式,也就是常說的主從模式,正常情況下主機提供服務,備機負責監聽主機狀態,當主機異常時,可以自動切換到備機繼續提供服務 這裡有點...

順序查詢(監視哨) 折半查詢

順序查詢 不帶監視哨int search seq 1 sstable s,elemtype key return i 不帶監視哨的寫法中,沒迴圈一次都要判斷兩個條件1 i折半查詢 折半查詢僅適用於對有序表的查詢 查詢原理是附設三個指標,low,high,mid 初始化分別執行表頭 表尾 表的中間元素...