更新時(shí)間:2022年07月25日11時(shí)37分 來源:傳智教育 瀏覽次數(shù):
哨兵模式是一種特殊的模式,首先Redis提供了哨兵的命令,哨兵是一個(gè)獨(dú)立的進(jìn)程,作為進(jìn)程,它會(huì)獨(dú)立運(yùn)行。其原理是哨兵通過發(fā)送命令,等待Redis服務(wù)器響應(yīng),從而監(jiān)控運(yùn)行的多個(gè)Redis實(shí)例。
主從切換技術(shù)的方法是:當(dāng)主服務(wù)器宕機(jī)后,需要手動(dòng)把一臺(tái)從服務(wù)器切換為主服務(wù)器,這就需要人工干預(yù),費(fèi)事費(fèi)力,還會(huì)造成一段時(shí)間內(nèi)服務(wù)不可用。這不是一種推薦的方式,更多時(shí)候,我們優(yōu)先考慮哨兵模式。
這里的哨兵有兩個(gè)作用通過發(fā)送命令,讓Redis服務(wù)器返回監(jiān)控其運(yùn)行狀態(tài),包括主服務(wù)器和從服務(wù)器。當(dāng)哨兵監(jiān)測(cè)到master宕機(jī),會(huì)自動(dòng)將slave切換成master,然后通過發(fā)布訂閱模式通知其他的從服務(wù)器,修改配置文件,讓它們切換主機(jī)。然而一個(gè)哨兵進(jìn)程對(duì)Redis服務(wù)器進(jìn)行監(jiān)控,可能會(huì)出現(xiàn)問題,為此,我們可以使用多個(gè)哨兵進(jìn)行監(jiān)控。各個(gè)哨兵之間還會(huì)進(jìn)行監(jiān)控,這樣就形成了多哨兵模式。
用文字描述一下故障切換(failover)的過程。假設(shè)主服務(wù)器宕機(jī),哨兵1先檢測(cè)到這個(gè)結(jié)果,系統(tǒng)并不會(huì)馬上進(jìn)行failover過程,僅僅是哨兵1主觀的認(rèn)為主服務(wù)器不可用,這個(gè)現(xiàn)象成為主觀下線。當(dāng)后面的哨兵也檢測(cè)到主服務(wù)器不可用,并且數(shù)量達(dá)到一定值時(shí),那么哨兵之間就會(huì)進(jìn)行一次投票,投票的結(jié)果由一個(gè)哨兵發(fā)起,進(jìn)行failover操作。切換成功后,就會(huì)通過發(fā)布訂閱模式,讓各個(gè)哨兵把自己監(jiān)控的從服務(wù)器實(shí)現(xiàn)切換主機(jī),這個(gè)過程稱為客觀下線。這樣對(duì)于客戶端而言,一切都是透明的。
數(shù)字1表示 :當(dāng)一個(gè)哨兵主觀認(rèn)為主機(jī)斷開,就可以客觀認(rèn)為主機(jī)故障,然后開始選舉新的主機(jī)。
sentinel monitor mymaster 127.0.0.1 6379 1
注意啟動(dòng)的順序。首先是主機(jī)(192.168.11.128)的Redis服務(wù)進(jìn)程,然后啟動(dòng)從機(jī)的服務(wù)進(jìn)程,最后啟動(dòng)3個(gè)哨兵的服務(wù)進(jìn)程。
哨兵模式優(yōu)缺點(diǎn)
優(yōu)點(diǎn):哨兵集群,基于主從復(fù)制模式,所有主從復(fù)制的優(yōu)點(diǎn),它都有。主從可以切換,故障可以轉(zhuǎn)移,系統(tǒng)的可用性更好。哨兵模式是主從模式的升級(jí),手動(dòng)到自動(dòng),更加健壯
哨兵模式缺點(diǎn):
Redis不好在線擴(kuò)容,集群容量一旦達(dá)到上限,在線擴(kuò)容就十分麻煩。實(shí)現(xiàn)哨兵模式的配置其實(shí)是很麻煩的,里面有很多配置項(xiàng)
北京校區(qū)