日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Redis集群:Sentinel哨兵模式(詳細(xì)圖解)
在 Redis 主從復(fù)制模式中,因?yàn)橄到y(tǒng)不具備自動(dòng)恢復(fù)的功能,所以當(dāng)主服務(wù)器(master)宕機(jī)后,需要手動(dòng)把一臺(tái)從服務(wù)器(slave)切換為主服務(wù)器。在這個(gè)過程中,不僅需要人為干預(yù),而且還會(huì)造成一段時(shí)間內(nèi)服務(wù)器處于不可用狀態(tài),同時(shí)數(shù)據(jù)安全性也得不到保障,因此主從模式的可用性較低,不適用于線上生產(chǎn)環(huán)境。

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)金水,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

Redis 官方推薦一種高可用方案,也就是 Redis Sentinel 哨兵模式,它彌補(bǔ)了主從模式的不足。Sentinel 通過監(jiān)控的方式獲取主機(jī)的工作狀態(tài)是否正常,當(dāng)主機(jī)發(fā)生故障時(shí), Sentinel 會(huì)自動(dòng)進(jìn)行 Failover(即故障轉(zhuǎn)移),并將其監(jiān)控的從機(jī)提升主服務(wù)器(master),從而保證了系統(tǒng)的高可用性。

哨兵模式原理

哨兵模式是一種特殊的模式,Redis 為其提供了專屬的哨兵命令,它是一個(gè)獨(dú)立的進(jìn)程,能夠獨(dú)立運(yùn)行。下面使用 Sentinel 搭建 Redis 集群,基本結(jié)構(gòu)圖如下所示:



圖1:哨兵基本模式

在上圖過程中,哨兵主要有兩個(gè)重要作用:

  • 第一:哨兵節(jié)點(diǎn)會(huì)以每秒一次的頻率對(duì)每個(gè) Redis 節(jié)點(diǎn)發(fā)送PING命令,并通過 Redis 節(jié)點(diǎn)的回復(fù)來判斷其運(yùn)行狀態(tài)。
  • 第二:當(dāng)哨兵監(jiān)測(cè)到主服務(wù)器發(fā)生故障時(shí),會(huì)自動(dòng)在從節(jié)點(diǎn)中選擇一臺(tái)將機(jī)器,并其提升為主服務(wù)器,然后使用 PubSub 發(fā)布訂閱模式,通知其他的從節(jié)點(diǎn),修改配置文件,跟隨新的主服務(wù)器。

在實(shí)際生產(chǎn)情況中,Redis Sentinel 是集群的高可用的保障,為避免 Sentinel 發(fā)生意外,它一般是由 3~5 個(gè)節(jié)點(diǎn)組成,這樣就算掛了個(gè)別節(jié)點(diǎn),該集群仍然可以正常運(yùn)轉(zhuǎn)。其結(jié)構(gòu)圖如下所示:



圖2:多哨兵模式

上圖所示,多個(gè)哨兵之間也存在互相監(jiān)控,這就形成了多哨兵模式,現(xiàn)在對(duì)該模式的工作過程進(jìn)行講解,介紹如下:

1) 主觀下線

主觀下線,適用于主服務(wù)器和從服務(wù)器。如果在規(guī)定的時(shí)間內(nèi)(配置參數(shù):down-after-milliseconds),Sentinel 節(jié)點(diǎn)沒有收到目標(biāo)服務(wù)器的有效回復(fù),則判定該服務(wù)器為“主觀下線”。比如 Sentinel1 向主服務(wù)發(fā)送了
PING命令,在規(guī)定時(shí)間內(nèi)沒收到主服務(wù)器
PONG回復(fù),則 Sentinel1 判定主服務(wù)器為“主觀下線”。

2) 客觀下線

客觀下線,只適用于主服務(wù)器。 Sentinel1 發(fā)現(xiàn)主服務(wù)器出現(xiàn)了故障,它會(huì)通過相應(yīng)的命令,詢問其它 Sentinel 節(jié)點(diǎn)對(duì)主服務(wù)器的狀態(tài)判斷。如果超過半數(shù)以上的  Sentinel 節(jié)點(diǎn)認(rèn)為主服務(wù)器 down 掉,則 Sentinel1 節(jié)點(diǎn)判定主服務(wù)為“客觀下線”。

3) 投票選舉

投票選舉,所有 Sentinel 節(jié)點(diǎn)會(huì)通過投票機(jī)制,按照誰(shuí)發(fā)現(xiàn)誰(shuí)去處理的原則,選舉 Sentinel1 為領(lǐng)頭節(jié)點(diǎn)去做 Failover(故障轉(zhuǎn)移)操作。Sentinel1 節(jié)點(diǎn)則按照一定的規(guī)則在所有從節(jié)點(diǎn)中選擇一個(gè)最優(yōu)的作為主服務(wù)器,然后通過發(fā)布訂功能通知其余的從節(jié)點(diǎn)(slave)更改配置文件,跟隨新上任的主服務(wù)器(master)。至此就完成了主從切換的操作。

對(duì)上對(duì)述過程做簡(jiǎn)單總結(jié):

Sentinel 負(fù)責(zé)監(jiān)控主從節(jié)點(diǎn)的“健康”狀態(tài)。當(dāng)主節(jié)點(diǎn)掛掉時(shí),自動(dòng)選擇一個(gè)最優(yōu)的從節(jié)點(diǎn)切換為主節(jié)點(diǎn)??蛻舳藖磉B接 Redis 集群時(shí),會(huì)首先連接 Sentinel,通過 Sentinel 來查詢主節(jié)點(diǎn)的地址,然后再去連接主節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互。當(dāng)主節(jié)點(diǎn)發(fā)生故障時(shí),客戶端會(huì)重新向 Sentinel 要地址,Sentinel 會(huì)將最新的主節(jié)點(diǎn)地址告訴客戶端。因此應(yīng)用程序無需重啟即可自動(dòng)完成主從節(jié)點(diǎn)切換。

哨兵模式應(yīng)用

Redis Sentinel 哨兵模式適合于在 Linux 系統(tǒng)中使用,所以下面的應(yīng)用都基于 Ubuntu 實(shí)現(xiàn)。

1) 安裝sentinel

Sentinel 需要作為插件單獨(dú)安裝,安裝方式如下:

sudo apt install redis-sentinel

2) 搭建主從模式

接下來,在本地環(huán)境使用主從模式搭建一個(gè)擁有三臺(tái)服務(wù)器的 Redis 集群,命令如下所示:

啟動(dòng)6379的redis服務(wù)器作為master主機(jī):
sudo /etc/init.d/redis-server start

啟動(dòng)6380的redis服務(wù)器,設(shè)置為6379的slave:
redis-server --port 6380
$ redis-cli -p 6380
127.0.0.1:6380> slaveof 127.0.0.1 6379
OK

啟動(dòng)6381的redis服務(wù)器,設(shè)置為6379的salve
redis-server --port 6381
$ redis-cli -p 6381
127.0.0.1:6381> slaveof 127.0.0.1 6379

3) 配置sentinel哨兵

首先新建 sentinel.conf 文件,并對(duì)其進(jìn)行配置,如下所示:

port 26379
Sentinel monitor biancheng 127.0.0.1 6379 1

配置文件說明如下:

port 26379 #sentinel監(jiān)聽端口,默認(rèn)是26379,可以更改
sentinel monitor    

第二個(gè)配置項(xiàng)表示:讓 sentinel 去監(jiān)控一個(gè)地址為 ip:port 的主服務(wù)器,這里的 master-name 可以自定義; 是一個(gè)數(shù)字,表示當(dāng)有多少個(gè) sentinel 認(rèn)為主服務(wù)器宕機(jī)時(shí),它才算真正的宕機(jī)掉,通常數(shù)量為半數(shù)或半數(shù)以上才會(huì)認(rèn)為主機(jī)已經(jīng)宕機(jī), 需要根據(jù) sentinel 的數(shù)量設(shè)置。

4) 啟動(dòng)sentienl哨兵

方式一: 
redis-sentinel sentinel.conf
方式二: 
redis-server sentinel.conf --sentinel

5) 停止主服務(wù)器服務(wù)

下面模擬主服務(wù)意外宕機(jī)的情況,首先直接將主服務(wù)器的 Redis 服務(wù)終止,然后查看從服務(wù)器是否被提升為了主服務(wù)器。執(zhí)行以下命令:

#終止master的redis服務(wù)
sudo /etc/init.d/redis-server stop

執(zhí)行完上述命令,您會(huì)發(fā)現(xiàn) 6381 稱為了新的 master,而其余節(jié)點(diǎn)變成了它的從機(jī),執(zhí)行命令驗(yàn)證:

127.0.0.1:6381> set webname www.biancheng.net
OK

哨兵的配置文件 sentinel.conf 也發(fā)生了變化:

#port 26379
#sentinel myid 4c626b6ff25dca5e757afdae2bd26a881a61a2b2
# Generated by CONFIG REWRITE
dir "/home/biancheng"
maxclients 4064
sentinel myid 4c626b6ff25dca5e757afdae2bd26a881a61a2b2
sentinel monitor biancheng 127.0.0.1 6379 1
sentinel config-epoch biancheng 2
sentinel leader-epoch biancheng 2
sentinel known-slave biancheng 127.0.0.1 6379
sentinel known-slave biancheng 127.0.0.1 6380
sentinel known-slave biancheng 127.0.0.1 6381
port 26379
sentinel current-epoch 2

如果您想開啟多個(gè)哨兵,只需配置要多個(gè) sentinel.conf 文件即可,一個(gè)配置文件開啟一個(gè)。

sentinel.conf配置項(xiàng)

下面對(duì) Sentinel 配置文件的其他配置項(xiàng)做簡(jiǎn)單說明:

sentinel配置文件說明
配置項(xiàng) 參數(shù)類型 說明
dir 文件目錄 哨兵進(jìn)程服務(wù)的文件存放目錄,默認(rèn)為 /tmp。
port 端口號(hào) 啟動(dòng)哨兵的進(jìn)程端口號(hào),默認(rèn)為 26379。
sentinel down-after-milliseconds <服務(wù)名稱><毫秒數(shù)(整數(shù))> 在指定的毫秒數(shù)內(nèi),若主節(jié)點(diǎn)沒有應(yīng)答哨兵的 PING 命令,此時(shí)哨兵認(rèn)為服務(wù)器主觀下線,默認(rèn)時(shí)間為 30 秒。
sentinel parallel-syncs <服務(wù)名稱><服務(wù)器數(shù)(整數(shù))> 指定可以有多少個(gè) Redis 服務(wù)同步新的主機(jī),一般而言,這個(gè)數(shù)字越小同步時(shí)間越長(zhǎng),而越大,則對(duì)網(wǎng)絡(luò)資源要求就越高。
sentinel failover-timeout <服務(wù)名稱><毫秒數(shù)(整數(shù))> 指定故障轉(zhuǎn)移允許的毫秒數(shù),若超過這個(gè)時(shí)間,就認(rèn)為故障轉(zhuǎn)移執(zhí)行失敗,默認(rèn)為 3 分鐘。
sentinel notification-script <服務(wù)名稱><腳本路徑> 腳本通知,配置當(dāng)某一事件發(fā)生時(shí)所需要執(zhí)行的腳本,可以通過腳本來通知管理員,例如當(dāng)系統(tǒng)運(yùn)行不正常時(shí)發(fā)郵件通知相關(guān)人員。
sentinel auth-pass <服務(wù)器名稱><密碼> 若主服務(wù)器設(shè)置了密碼,則哨兵必須也配置密碼,否則哨兵無法對(duì)主從服務(wù)器進(jìn)行監(jiān)控。該密碼與主服務(wù)器密碼相同。


本文標(biāo)題:Redis集群:Sentinel哨兵模式(詳細(xì)圖解)
網(wǎng)站地址:http://www.5511xx.com/article/dpjesod.html