国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:28日期:2023-08-04 09:45:04

1. sentinel作用

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

2. 而Redis-sentinel本身也是一個獨立運行的進程,它能監控多個master-slave集群,發現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的信息就好啦,不用配置slave的信息,因為slave能夠被自動檢測到

2. 需要注意的是,配置文件在sentinel運行期間是會被動態修改的,例如當發生主備切換時候,配置文件中的master會被修改為另外一個slave。

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

# sentinel.conf 配置說明sentinel monitor mymaster 127.0.0.1 6379 2sentinel down-after-milliseconds mymaster 60000sentinel failover-timeout mymaster 180000sentinel parallel-syncs mymaster 1

7. 配置傳播

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

2. 一個faiover要想被成功實行,sentinel必須能夠向選為master的slave發送SLAVE OF NO ONE命令,然后能夠通過INFO命令看到新master的配置信息。

3. 當將一個slave選舉為master并發送SLAVE OF NO ONE`后,即使其它的slave還沒針對新master重新配置自己,failover也被認為是成功了的。

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

1)假設有一個名為mymaster的地址為192.168.1.50:6379。

2)一開始,集群中所有的sentinel都知道這個地址,于是為mymaster的配置打上版本號1。

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

4)如果failover成功了,假設地址改為了192.168.1.50:9000,此時配置的版本號為2

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 刚察县| 酒泉市| 陇西县| 随州市| 永新县| 永仁县| 米易县| 老河口市| 温宿县| 宁津县| 乐安县| 任丘市| 顺昌县| 宝兴县| 岳阳市| 柳河县| 信阳市| 大宁县| 黄石市| 屏东县| 淮滨县| 邮箱| 商都县| 兴国县| 海淀区| 抚宁县| 基隆市| 定兴县| 章丘市| 安吉县| 宿州市| 罗定市| 莆田市| 山东| 万源市| 东光县| 黄平县| 井冈山市| 喀什市| 鄢陵县| 永清县|