99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

Redis哨兵機制Sentinel的原理和應(yīng)用

這篇文章主要介紹“redis哨兵機制Sentinel的原理和應(yīng)用”,在日常操作中,相信很多人在Redis哨兵機制Sentinel的原理和應(yīng)用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis哨兵機制Sentinel的原理和應(yīng)用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù)團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標準與要求,同時竭誠為客戶提供服務(wù)是我們的理念。成都創(chuàng)新互聯(lián)公司把每個網(wǎng)站當做一個產(chǎn)品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!

哨兵機制

什么是哨兵機制

在主從復(fù)制的模式下,主服務(wù)器宕機后,從服務(wù)器是不能自動轉(zhuǎn)為主服務(wù)器的,只能手動進行故障轉(zhuǎn)移

哨兵機制(Sentinel)就是Redis的高可用解決方案,由一個或多個Sentinel實例組成的Sentinel系統(tǒng)用來管理主服務(wù)器以及連接的所有從服務(wù)器。可以實現(xiàn)故障發(fā)現(xiàn)、故障自動轉(zhuǎn)移、配置中心和客戶端通知

  • 監(jiān)控(Monitoring):Sentinel會不斷地檢查你的主服務(wù)器和從服務(wù)器是否運作正常

  • 提醒(Notification):當被監(jiān)控的某個Redis服務(wù)器出現(xiàn)問題時,Sentinel可以通過API向管理員或者其他應(yīng)用程序發(fā)送通知

  • 自動故障遷移(Automatic failover):當一個主服務(wù)器不能正常工作時, Sentinel會開始一次自動故障遷移操作,它會將失效主服務(wù)器的其中一個從服務(wù)器升級為新的主服務(wù)器,并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器;當客戶端試圖連接失效的主服務(wù)器時,集群也會向客戶端返回新主服務(wù)器的地址,使得集群可以使用新主服務(wù)器代替失效服務(wù)器

Redis哨兵機制Sentinel的原理和應(yīng)用

看了上圖,我們可以理解哨兵機制就是在復(fù)制基礎(chǔ)上的一套監(jiān)管系統(tǒng),能及時的進行故障轉(zhuǎn)移。那么就先了解下,Redis是如何故障判定和故障轉(zhuǎn)移的

故障判定

故障判定,也就是Sentinel在做的任務(wù),當一個Sentinel啟動后會定期的去執(zhí)行以下的任務(wù)

  • 每個Sentinel進程會以每秒一次的頻率向已知的主服務(wù)器、從服務(wù)器以及其他的Sentinel實例發(fā)送一個PING命令

  • 每個實例(instance)距離最后一次有效回復(fù)PING命令的時間超過down-after-milliseconds選項所指定的值,那么該實例會被標記為主觀下線。一個有效回復(fù)可以是:+PONG-LOADING或者-MASTERDOWN

  • 如果一個Master主服務(wù)器被標記為主觀下線,那么監(jiān)視該主服務(wù)器的所有的Sentinel會以每秒一次的頻率確認主服務(wù)器的確是進入主線下線狀態(tài)

  • 如果有足夠數(shù)量的Sentinel(至少達到配置文件指定的數(shù)量)在指定時間范圍內(nèi)確認一個Master主服務(wù)器為主觀下線狀態(tài),那么該主服務(wù)器被標記為客觀下線

  • 一般情況下,每個Sentinel會每10秒一次的頻率向已知的主服務(wù)器和從服務(wù)器發(fā)送INFO命令,當一個主服務(wù)器被標記為客觀下線時,發(fā)送INFO命令的頻率會改為每秒一次

  • 沒有足夠數(shù)量的Sentinel同意主服務(wù)器下線,主服務(wù)器的客觀下線狀態(tài)會被移除;當主服務(wù)器重新向Sentinel的PING命令返回有效回復(fù),主服務(wù)器的主觀下線狀態(tài)就會被移除

主觀下線(Subjectively Down,SDOWN)指單個Sentinel實例對服務(wù)器做出下線判斷

客觀下線(Objectively Down,ODOWN)指多個Sentinel實例對服務(wù)器做出SDOWN判斷, 并且通過 SENTINEL is-master-down-by-addr命令互相交流之后,,得出的服務(wù)器下線判斷

搭建哨兵實例

準備

我這里是準備了3個虛擬機,1主2從的Redis服務(wù)器和3個哨兵實例。官網(wǎng)上是推薦至少部署3個Sentinel實例保證健壯性,具體的地址端口如下

服務(wù)ipport
Redis(master)192.168.249.206379
Redis192.168.249.216379
Redis192.168.249.226379
Sentinel192.168.249.2026379
Sentinel192.168.249.2126379
Sentinel192.168.249.2226379

1主2從的Redis服務(wù)的配置如下,修改一下redis.conf文件

# 設(shè)置為后臺運行
daemonize yes
# 綁定的主機地址,這里注釋掉,開放ip連接
#bind 127.0.0.1

# 主服務(wù)上可以設(shè)置密碼
requirepass 123456

在從服務(wù)器上添加主服務(wù)器的地址信息

# 設(shè)置主服務(wù)器的地址
# replicaof <masterip> <masterport>
replicaof 192.168.249.20 6379
# 設(shè)置主服務(wù)器的密碼
# masterauth <master-password>
masterauth 123456

3個哨兵的配置都是一樣的,可以從Redis的安裝目錄拷貝一份sentinel.conf,修改內(nèi)容如下,主要是配置下主服務(wù)器的地址

# 設(shè)置為后臺運行
daemonize yes
logfile "26379.log"
# 設(shè)置主服務(wù)器的地址,quorum為2表示當有2個或以上的哨兵認為主服務(wù)器不可用時,才進行故障轉(zhuǎn)移操作
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 192.168.249.20 6379 2
# 設(shè)置服務(wù)器密碼
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 123456

# 指定了 Sentinel 認為服務(wù)器已經(jīng)斷線所需的毫秒數(shù)
# sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 30000
# 指定了在執(zhí)行故障轉(zhuǎn)移時,最多可以有多少個從服務(wù)器同時對新的主服務(wù)器進行同步, 這個數(shù)字越小,完成故障轉(zhuǎn)移所需的時間就越長。但是如果這個數(shù)字越大,就意味著越多的slave因為replication而不可用。
# 可以通過將這個值設(shè)為 1 來保證每次只有一個slave 處于不能處理命令請求的狀態(tài)
# sentinel parallel-syncs <master-name> <numreplicas>
sentinel parallel-syncs mymaster 1
# 指定故障轉(zhuǎn)移超時時間
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000

Sentinel可用通過Redis實例的發(fā)布/訂閱功能自動發(fā)現(xiàn)同樣在監(jiān)控主服務(wù)器的其他Sentinel,以及可以通過主服務(wù)器獲取其他從服務(wù)器的信息,所以我們只需配置主服務(wù)器的地址即可

啟動

啟動順序分別是:主服務(wù)器,從服務(wù)器,然后是3個哨兵進程

啟動Redis服務(wù)

./redis-server ../redis.conf

Sentinel其實也是一個Redis服務(wù),可以看做一個特殊模式的Redis服務(wù),啟動的命令有兩種

./redis-server ../sentinel.conf --sentinel

./redis-sentinel ../sentinel.conf

這兩種方式啟動哨兵的效果都是一樣的,在啟動運行時必須要使用配置文件,因為系統(tǒng)需要這個文件來保存當前狀態(tài),以便重啟時加載

查看主機狀態(tài)

我們可以用客戶端連接哨兵,使用sentinel master <master-name>查看其監(jiān)視的主服務(wù)器的狀態(tài)

$ ./redis-cli -h 192.168.249.20 -p 26379
192.168.249.20:26379> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "192.168.249.20"
 5) "port"
 6) "6379"
 7) "runid"
 8) "2a58b746fe9c963e69887efbc877aa3143eb6ec6"
 9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "167"
19) "last-ping-reply"
20) "167"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "2941"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "2006632"
29) "config-epoch"
30) "0"
31) "num-slaves"
32) "2"
33) "num-other-sentinels"
34) "2"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"

我們看到關(guān)于主服務(wù)器的一些監(jiān)控信息

num-slaves為從服務(wù)器的數(shù)量;num-other-sentinels其他哨兵的數(shù)量;flags標記為master,當主機掉線了,會變?yōu)閟_down或o_down

另外,想查看其他從服務(wù)器和其他哨兵的狀態(tài),可以用以下的命令

sentinel slaves <master-name>
sentinel sentinels <master-name>

故障轉(zhuǎn)移

我們可以手動模擬一下,當主服務(wù)器掛了,故障故障轉(zhuǎn)移情況。

想要獲取當前主服務(wù)器的地址信息,客戶端可以使用sentinel get-master-addr-by-name <master-name>命令

192.168.249.20:26379> sentinel get-master-addr-by-name mymaster
1) "192.168.249.20"
2) "6379"

可以看到當前的主服務(wù)地址為192.168.249.20,這時我們手動關(guān)閉該服務(wù),或者使用以下命令讓服務(wù)器睡眠40秒

$ ./redis-cli -h 192.168.249.20  -p 6379
192.168.249.20:6379> auth 123456
OK
192.168.249.20:6379> debug sleep 40
OK
(40.01s)

這個時候我們再次查看主服務(wù)的地址時,應(yīng)該是可以看到不同信息

192.168.249.20:26379> sentinel get-master-addr-by-name mymaster
1) "192.168.249.22"
2) "6379"

到此,關(guān)于“Redis哨兵機制Sentinel的原理和應(yīng)用”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)頁題目:Redis哨兵機制Sentinel的原理和應(yīng)用
鏈接分享:http://www.yijiale78.com/article42/pchcec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷服務(wù)器托管商城網(wǎng)站搜索引擎優(yōu)化網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)