redis 哨兵機制

sentinal(哨兵)

哨兵是redis集群架構(gòu)中非常重要的一個組件吞加,主要功能如下:

(1)集群監(jiān)控秕岛,負責(zé)監(jiān)控redis master 和slave進程是否正常工作。
(2)消息通知童番,如果某個redis實例有故障伪货,那么哨兵負責(zé)發(fā)送消息作為報警通知給管理員。
(3)故障轉(zhuǎn)移踩官,如果master node掛掉了却桶,會自動轉(zhuǎn)移到slave node上。
(4)配置中心蔗牡,如果故障轉(zhuǎn)移發(fā)生了颖系,通知client客戶端新的master地址。


哨兵本身也是分布式的辩越,作為一個哨兵集群去運行的嘁扼,相互協(xié)同工作

(1)故障轉(zhuǎn)移時,判斷一個master node宕機了黔攒,需要大部分哨兵都同意才行趁啸,涉及到分布式選舉問題。
(2)及時部分哨兵節(jié)點掛掉了督惰,哨兵集群還是能正常工作的不傅,因為如果一個作為高可用機制重要組成部分的故障轉(zhuǎn)移系統(tǒng)本身就是單點,那么就不靠譜赏胚。


哨兵的核心知識
  • 哨兵至少需要3個實例访娶,來保證自己的健壯性。
  • 哨兵+redis主從的部署架構(gòu)觉阅,是不會保證數(shù)據(jù)零丟失的震肮,只能保證redis集群的高可用性
  • 對于哨兵+redis主從這種復(fù)雜的部署架構(gòu),盡量在測試環(huán)境和生產(chǎn)環(huán)境留拾,都進行充分的測試和演練。

redis哨兵主備切換的數(shù)據(jù)丟失問題

兩種丟失情況:

  • 異步復(fù)制導(dǎo)致的數(shù)據(jù)丟失
    因為master->slave的復(fù)制是異步的鲫尊,所以可能有部分?jǐn)?shù)據(jù)還沒復(fù)制到slave痴柔,master就宕機了,這些數(shù)據(jù)就丟失了疫向。
  • 腦裂導(dǎo)致的數(shù)據(jù)丟失
    腦裂咳蔚,也就是說,某個master所在機器突然脫離了正常的網(wǎng)絡(luò)搔驼,跟其他slave機器不能連接谈火,但是實際上master還運行著
    這個時候,集群中就會出現(xiàn)兩個master舌涨。
    此時雖然某個slave被切換成了master糯耍,但是可能client還沒來得及切換到新的master,還繼續(xù)寫向舊master數(shù)據(jù)可能就會丟失。
    因此master在恢復(fù)的時候温技,會被作為一個slave掛到新的master上革为,自己的數(shù)據(jù)會被清空,從新的master復(fù)制數(shù)據(jù)

解決異步復(fù)制和腦裂導(dǎo)致的數(shù)據(jù)丟失

min-slaves-to-write 1
min-slaves-max-lag 10
要求至少有1個slave舵鳞,數(shù)據(jù)復(fù)制和同步的延遲不能超過10秒
如果說一旦所有slave震檩,數(shù)據(jù)復(fù)制和同步的延遲都超過了10秒鐘,那么這個時候蜓堕,master就不會再接收任何請求了抛虏。
(1)減少異步復(fù)制的數(shù)據(jù)丟失
有了min-slaves-max-lag這個配置,就可以確保說套才,一旦slave復(fù)制數(shù)據(jù)和ack延時太長迂猴,就認為可能master宕機后損失的數(shù)據(jù)太多了,那么就拒絕寫請求霜旧,這樣可以把master宕機時由于部分?jǐn)?shù)據(jù)未同步到slave導(dǎo)致的數(shù)據(jù)丟失降低的可控范圍內(nèi)
(2)減少腦裂的數(shù)據(jù)丟失
如果一個master出現(xiàn)了腦裂错忱,跟其他slave丟了連接,那么上面兩個配置可以確保說挂据,如果不能繼續(xù)給指定數(shù)量的slave發(fā)送數(shù)據(jù)以清,而且slave超過10秒沒有給自己ack消息,那么就直接拒絕客戶端的寫請求
這樣腦裂后的舊master就不會接受client的新數(shù)據(jù)崎逃,也就避免了數(shù)據(jù)丟失
上面的配置就確保了掷倔,如果跟任何一個slave丟了連接,在10秒后發(fā)現(xiàn)沒有slave給自己ack个绍,那么就拒絕新的寫請求
因此在腦裂場景下勒葱,最多就丟失10秒的數(shù)據(jù)


集群腦裂導(dǎo)致的數(shù)據(jù)丟失問題.png
腦裂導(dǎo)致數(shù)據(jù)丟失的問題如何降低損失.png
異步復(fù)制導(dǎo)致的數(shù)據(jù)丟失問題.png
異步復(fù)制導(dǎo)致數(shù)據(jù)丟失如何降低損失.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市巴柿,隨后出現(xiàn)的幾起案子凛虽,更是在濱河造成了極大的恐慌,老刑警劉巖广恢,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凯旋,死亡現(xiàn)場離奇詭異,居然都是意外死亡钉迷,警方通過查閱死者的電腦和手機至非,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糠聪,“玉大人荒椭,你說我怎么就攤上這事〗Ⅲ。” “怎么了趣惠?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵狸棍,是天一觀的道長。 經(jīng)常有香客問我信卡,道長隔缀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任傍菇,我火速辦了婚禮猾瘸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丢习。我一直安慰自己牵触,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布咐低。 她就那樣靜靜地躺著揽思,像睡著了一般。 火紅的嫁衣襯著肌膚如雪见擦。 梳的紋絲不亂的頭發(fā)上钉汗,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天,我揣著相機與錄音鲤屡,去河邊找鬼损痰。 笑死,一個胖子當(dāng)著我的面吹牛酒来,可吹牛的內(nèi)容都是我干的卢未。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼堰汉,長吁一口氣:“原來是場噩夢啊……” “哼辽社!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起翘鸭,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤滴铅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后就乓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體失息,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年档址,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邻梆。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出黍图,到底是詐尸還是另有隱情吴超,我是刑警寧澤见芹,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站蠢涝,受9級特大地震影響玄呛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜和二,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一徘铝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惯吕,春花似錦惕它、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至堡距,卻和暖如春甲锡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羽戒。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工缤沦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人半醉。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓疚俱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缩多。 傳聞我的和親對象是個殘疾皇子呆奕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,937評論 2 361