【Kafka】4.高可用及Failover流程

寫在前面

本文為Kafka系列文章第四篇捌年,全文可見:

Kafka集群高可用邏輯

節(jié)點宕機處理流程

<Topic/Partition>故障轉(zhuǎn)移時的操作

Leader發(fā)生故障時

  1. 會選擇ISR中的一個副本佩谣,作為新的leader (有可能因為本次選舉后把还,leader集中于某個broker使得集群負(fù)載不均衡,此時kafka提供了kafka-preferred-replica-election.sh腳本可以重新進(jìn)行l(wèi)eader和broker之間的分配)
  2. 為了數(shù)據(jù)一致性茸俭,所有的副本+新leader都舍棄HW(High Watermark吊履,即Leader+ISR的最大Offset的最小值)之后的數(shù)據(jù),新的數(shù)據(jù)從HW之后重新開始寫入和讀取

Follower發(fā)生故障時

  1. 首先該Follower由于長時間為從Leader拉取消息會被剔出ISR调鬓。
  2. 由于無法確定在當(dāng)前follower宕機期間艇炎, leader和其他副本之間是否已發(fā)生了故障轉(zhuǎn)移導(dǎo)致舍棄了HW之后的數(shù)據(jù),所以HW之后的數(shù)據(jù)是不能直接使用的腾窝。當(dāng)前follower將HW (自己之前記錄的HW) 之后的數(shù)據(jù)舍棄缀踪。
  3. 從HW的位置重新申請和leader進(jìn)行同步操作,直到數(shù)據(jù)追平之后虹脯,重新加入ISR中驴娃。

Broker Failover流程

普通Broker (非Controller) Failover邏輯

  1. Controller會在ZK中注冊對于所有集群中的其他Broker的Watch,如果Broker與ZK斷開連接循集,則會收到對應(yīng)的通知消息 (Watch Fired)
  2. Controller收到宕機的通知消息后會查詢ZK決定set_p (該broker上所有的<topic唇敞, partition, leader>暇榴,即需要進(jìn)行故障轉(zhuǎn)移的partition集合)
  3. 對于set_p中的partition
  • (a) 查詢ZK上的/brokers/topics/[topic]/partitions/[partition]/state厚棵,得到ISR信息*
  • (b) 從ISR中選出新的leader蕉世,如果當(dāng)前ISR為空時也可以從AR (assigned replicas蔼紧,即全量副本)中選擇 (unclean. leader.election.enable=默認(rèn)為true),可能有HW以下數(shù)據(jù)損失的風(fēng)險*
  • (c) 將新的leader和對應(yīng)的ISR信息回寫ZK上的/brokers/topics/[topic]/partitions/[partition]/state中*
  • (d) 通過RPC調(diào)用告知 follower promotion相關(guān)的Broker狠轻,變更其中這部分replica的角色*

Controller Failover邏輯

  1. 所有的Broker均會在ZK中注冊對于Controller的Watch奸例,當(dāng)Controller與ZK斷連,則所有的Broker都會收到消息(Watch Fired)
  2. 所有Broker通過競爭的方式在ZK中創(chuàng)建/Controller節(jié)點,競選新的Controller
  3. 其他流程與普通Broker一致
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末查吊,一起剝皮案震驚了整個濱河市谐区,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逻卖,老刑警劉巖宋列,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異评也,居然都是意外死亡炼杖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門盗迟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坤邪,“玉大人,你說我怎么就攤上這事罚缕⊥Х模” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵邮弹,是天一觀的道長黔衡。 經(jīng)常有香客問我,道長腌乡,這世上最難降的妖魔是什么员帮? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮导饲,結(jié)果婚禮上捞高,老公的妹妹穿的比我還像新娘。我一直安慰自己渣锦,他們只是感情好硝岗,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袋毙,像睡著了一般型檀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上听盖,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天胀溺,我揣著相機與錄音,去河邊找鬼皆看。 笑死仓坞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腰吟。 我是一名探鬼主播无埃,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嫉称?” 一聲冷哼從身側(cè)響起侦镇,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎织阅,沒想到半個月后壳繁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡荔棉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年氮趋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片江耀。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡剩胁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祥国,到底是詐尸還是另有隱情昵观,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布舌稀,位于F島的核電站啊犬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏壁查。R本人自食惡果不足惜觉至,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望睡腿。 院中可真熱鬧语御,春花似錦、人聲如沸席怪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挂捻。三九已至碉纺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刻撒,已是汗流浹背骨田。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留声怔,地道東北人态贤。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像捧搞,于是被迫代替她去往敵國和親抵卫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容