Redis哨兵(sentinel)模式搭建

一、Sentinel介紹

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計(jì),文峰網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:文峰等地區(qū)。文峰做網(wǎng)站價(jià)格咨詢:18982081108

之前騷了一波redis的簡(jiǎn)介及應(yīng)用場(chǎng)景,今天試了下他的哨兵模式;

Sentinel是Redis的高可用性(HA)解決方案,由一個(gè)或多個(gè)Sentinel實(shí)例組成的Sentinel系統(tǒng)可以監(jiān)視任意多個(gè)主服務(wù)器,以及這些主服務(wù)器屬下的所有從服務(wù)器,

并在被監(jiān)視的主服務(wù)器進(jìn)行下線狀態(tài)時(shí),自動(dòng)將下線主服務(wù)器屬下的某個(gè)從服務(wù)器升級(jí)為新的主服務(wù)器,然后由新的主服務(wù)器代替已下線的主服務(wù)器繼續(xù)處理命令請(qǐng)求。

Redis提供的sentinel(哨兵)機(jī)制,通過(guò)sentinel模式啟動(dòng)redis后,自動(dòng)監(jiān)控master/slave的運(yùn)行狀態(tài),基本原理是:心跳機(jī)制+投票裁決
監(jiān)控(Monitoring): Sentinel 會(huì)不斷地檢查你的主服務(wù)器和從服務(wù)器是否運(yùn)作正常。
提醒(Notification): 當(dāng)被監(jiān)控的某個(gè) Redis 服務(wù)器出現(xiàn)問(wèn)題時(shí), Sentinel 可以通過(guò) API 向管理員或者其他應(yīng)用程序發(fā)送通知。
自動(dòng)故障遷移(Automatic failover): 當(dāng)一個(gè)主服務(wù)器不能正常工作時(shí), Sentinel 會(huì)開(kāi)始一次自動(dòng)故障遷移操作, 它會(huì)將失效主服務(wù)器的其中一個(gè)從服務(wù)器升級(jí)為新的主服務(wù)器,

并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器; 當(dāng)客戶端試圖連接失效的主服務(wù)器時(shí), 集群也會(huì)向客戶端返回新主服務(wù)器的地址, 使得集群可以使用新主服務(wù)器代替失效服務(wù)器。
Redis哨兵(sentinel)模式搭建

二、Redis Sentinel搭建

測(cè)試采用2個(gè)哨兵,1個(gè)主redis,2個(gè)從redis。
復(fù)制5份redis.windows.conf文件并重命名如下(開(kāi)發(fā)者可根據(jù)自己的開(kāi)發(fā)習(xí)慣進(jìn)行重命名):

master.6379.conf 配置:

port 6379
#設(shè)置連接密碼
requirepass grs
#連接密碼
masterauth grs

slave.6380.conf 配置:

port 6380
requirepass grs
masterauth grs
dbfilename dump6380.rdb
#配置master
slaveof 127.0.0.1 6379

slave.6381.conf 配置:

port 6381
requirepass grs
masterauth grs
dbfilename dump6381.rdb
#配置master
slaveof 127.0.0.1 6379

sentinel.63791.conf 配置(將原配置文件清空后添加如下內(nèi)容)(另一個(gè)一樣,只需要修改下端口):

port 63791
#主master,2個(gè)sentinel選舉成功后才有效,這里的master-1是名稱,在整合的時(shí)候需要一致,這里可以隨便更改
sentinel monitor master-1 127.0.0.1 6379 2
#判斷主master的掛機(jī)時(shí)間(毫秒),超時(shí)未返回正確信息后標(biāo)記為sdown狀態(tài)
sentinel down-after-milliseconds master-1 5000
#若sentinel在該配置值內(nèi)未能完成failover操作(即故障時(shí)master/slave自動(dòng)切換),則認(rèn)為本次failover失敗。
sentinel failover-timeout master-1 18000
#身份認(rèn)證
sentinel auth-pass master-1 grs
#選項(xiàng)指定了在執(zhí)行故障轉(zhuǎn)移時(shí), 最多可以有多少個(gè)從服務(wù)器同時(shí)對(duì)新的主服務(wù)器進(jìn)行同步,這個(gè)數(shù)字越小,完成故障轉(zhuǎn)移所需的時(shí)間就越長(zhǎng)
sentinel parallel-syncs master-1 1

這里有三個(gè)問(wèn)題需要注意
第一,若通過(guò)redis-cli -h 127.0.0.1 -p 6379連接,無(wú)需改變配置文件,配置文件默認(rèn)配置為bind 127.0.0.1(只允許127.0.0.1連接訪問(wèn))
若通過(guò)redis-cli -h 192.168.180.78 -p 6379連接,需改變配置文件,配置信息為bind 127.0.0.1 192.168.180.78(只允許127.0.0.1和192.168.180.78訪問(wèn))或者將bind 127.0.0.1注釋掉(允許所有遠(yuǎn)程訪問(wèn))
第二,masterauth為所要連接的master服務(wù)器的requirepass,如果一個(gè)redis集群中有一個(gè)master服務(wù)器,兩個(gè)slave服務(wù)器,當(dāng)master服務(wù)器掛掉時(shí),sentinel哨兵會(huì)隨機(jī)選擇一個(gè)slave服務(wù)器充當(dāng)master服務(wù)器,鑒于這種機(jī)制,解決辦法是將所有的主從服務(wù)器的requirepass和masterauth都設(shè)置為一樣。
第三,sentinel monitor master-1 127.0.0.1 6379 2 行尾最后的一個(gè)2代表什么意思呢?我們知道,網(wǎng)絡(luò)是不可靠的,有時(shí)候一個(gè)sentinel會(huì)因?yàn)榫W(wǎng)絡(luò)堵塞而誤以為一個(gè)master redis已經(jīng)死掉了,當(dāng)sentinel集群式,解決這個(gè)問(wèn)題的方法就變得很簡(jiǎn)單,只需要多個(gè)sentinel互相溝通來(lái)確認(rèn)某個(gè)master是否真的死了,這個(gè)2代表,當(dāng)集群中有2個(gè)sentinel認(rèn)為master死了時(shí),才能真正認(rèn)為該master已經(jīng)不可用了。(sentinel集群中各個(gè)sentinel也有互相通信,通過(guò)gossip協(xié)議)。
按如下循序依次啟動(dòng)服務(wù)
1、redis-server master.6379.conf
Redis哨兵(sentinel)模式搭建

2、redis-server slave.6380.conf
Redis哨兵(sentinel)模式搭建

3、redis-server slave.6381.conf
Redis哨兵(sentinel)模式搭建

4、redis-server sentinel.63791.conf --sentinel(linux:redis-sentinel sentinel.63791.conf)
Redis哨兵(sentinel)模式搭建

5、redis-server sentinel.63792.conf --sentinel(linux:redis-sentinel sentinel.63792.conf)
Redis哨兵(sentinel)模式搭建

查看master狀態(tài):
Redis哨兵(sentinel)模式搭建

查看slave狀態(tài):
Redis哨兵(sentinel)模式搭建

查看sentinel狀態(tài):
Redis哨兵(sentinel)模式搭建

驗(yàn)證redis sentinel的主從切換:
1、首先關(guān)閉主redis(6379)服務(wù)(shutdown)。
2、查看哨兵,發(fā)現(xiàn)端口號(hào)為6380的從服務(wù)變成了主服務(wù),sentinel自動(dòng)完成了故障切換。
Redis哨兵(sentinel)模式搭建
3、啟動(dòng)剛才被shutdown的6379服務(wù)并查看,發(fā)現(xiàn)它變成了從服務(wù)。
Redis哨兵(sentinel)模式搭建

到這 我搭建和演示就結(jié)束了

后續(xù)單機(jī)版 spring 整合使用慢慢玩吧,成功了再來(lái)

分享名稱:Redis哨兵(sentinel)模式搭建
文章URL:http://muchs.cn/article40/jcgjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、定制開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、建站公司、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站建設(shè)

廣告

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

網(wǎng)站優(yōu)化排名