Sentinel(哨兵)保證了redis的高可用性,一個(gè)Sentinel或多個(gè)Sentinel組成的系統(tǒng)監(jiān)視多個(gè)主從服務(wù)器,當(dāng)主服務(wù)器下線(xiàn)時(shí),自動(dòng)將一個(gè)從服務(wù)器升級(jí)為主服務(wù)器。
sentinel的主要功能
- 集群監(jiān)控:負(fù)責(zé)監(jiān)控redis master和slave進(jìn)程是否正常工作?
- 消息通知:如果某個(gè)redis實(shí)例有故障,那么哨兵負(fù)責(zé)發(fā)送消息給管理員?
- 故障轉(zhuǎn)移:如果master node掛掉了,會(huì)自動(dòng)轉(zhuǎn)移到slave node上?
- 配置中心:提供可靠的master地址,如果故障轉(zhuǎn)移發(fā)生了,通知client客戶(hù)端新的master地址
Sentinel啟動(dòng)時(shí)
- 初始化服務(wù)器
- 使用sentinel專(zhuān)用代碼
- 初始化sentinel狀態(tài)
- 初始化sentinel狀態(tài)的master屬性(master屬性記錄了所有被監(jiān)視的主服務(wù)器信息)
- 創(chuàng)建連向主服務(wù)器的網(wǎng)絡(luò)連接(一個(gè)是命令連接,一個(gè)是訂閱連接)
獲取主服務(wù)器的信息:sentinel會(huì)以每10s一次的頻率通過(guò)命令連接來(lái)向被監(jiān)視的主服務(wù)器發(fā)送info命令,并通過(guò)命令的回復(fù)來(lái)獲得主服務(wù)器的當(dāng)前信息,對(duì)其實(shí)例結(jié)構(gòu)進(jìn)行更新。會(huì)創(chuàng)建從服務(wù)器的實(shí)例結(jié)構(gòu)并保存到所屬主服務(wù)器的實(shí)例結(jié)構(gòu)的slaves字典中
獲取從服務(wù)器的信息:sentinel也會(huì)創(chuàng)建到從服務(wù)器的命令連接和訂閱連接,創(chuàng)建命令連接后以每10s一次的頻率通過(guò)命令連接來(lái)向從服務(wù)器發(fā)送info命令,并通過(guò)命令的回復(fù)來(lái)獲得從服務(wù)器的信息,對(duì)其實(shí)例結(jié)構(gòu)進(jìn)行更新
Sentinel為主服務(wù)器創(chuàng)建的實(shí)例結(jié)構(gòu)中的sentinels字典保存了除Sentinel本身之外,所有同樣監(jiān)視這個(gè)主服務(wù)器的其他Sentinel的資料。
?
Sentinel通過(guò)頻道信息發(fā)現(xiàn)新的sentinel時(shí),會(huì)建立命令連接
檢查主觀下線(xiàn)狀態(tài)
sentinel默認(rèn)以每秒一次向所有與它建立了命令連接的實(shí)例(主從服務(wù)器,其他sentinel)發(fā)送ping命令,通過(guò)回復(fù)判斷是否在線(xiàn)
檢查客觀下線(xiàn)狀態(tài)
sentinel將一個(gè)主服務(wù)器判斷為主觀下線(xiàn)后,向其他監(jiān)視該服務(wù)器的sentinel詢(xún)問(wèn),如果認(rèn)為該服務(wù)器下線(xiàn)的sentinel數(shù)量足夠多,將判斷為客觀下線(xiàn),對(duì)主服務(wù)器執(zhí)行故障轉(zhuǎn)移操作
一個(gè)主服務(wù)器被判斷為客觀下線(xiàn)后,將從監(jiān)視這個(gè)主服務(wù)器的sentinel中選擇一個(gè)領(lǐng)頭sentinel執(zhí)行故障轉(zhuǎn)移操作文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-812887.html
故障轉(zhuǎn)移
將下線(xiàn)主服務(wù)器的從服務(wù)器中選出一個(gè)作為新主服務(wù)器,其他從服務(wù)器改為復(fù)制新的主服務(wù)器,已下線(xiàn)的主服務(wù)器也改為復(fù)制新的主服務(wù)器。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-812887.html
到了這里,關(guān)于redis夯實(shí)之路-哨兵(Sentinel)機(jī)制詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!