九泡仗、Kafka 消費(fèi)位點(diǎn)

檢查點(diǎn)使得 Apache Flink 具有容錯(cuò)能力,并確保了即時(shí)發(fā)生故障也能保證流應(yīng)用程序的語(yǔ)義赡麦。檢查點(diǎn)是以固定的間隔來(lái)觸發(fā)的朴皆,該間隔可以在應(yīng)用中配置。

Apache Flink 中實(shí)現(xiàn)的 Kafka 消費(fèi)者是一個(gè)有狀態(tài)的算子(operator)泛粹,它集成了 Flink 的檢查點(diǎn)機(jī)制遂铡,它的狀態(tài)是所有 Kafka 分區(qū)的讀取偏移量。當(dāng)一個(gè)檢查點(diǎn)被觸發(fā)時(shí)晶姊,每一個(gè)分區(qū)的偏移量都被存到了這個(gè)檢查點(diǎn)中扒接。Flink 的檢查點(diǎn)機(jī)制保證了所有 operator task 的存儲(chǔ)狀態(tài)都是一致的。這里的“一致的”是什么意思呢们衙?意思是它們存儲(chǔ)的狀態(tài)都是基于相同的輸入數(shù)據(jù)钾怔。當(dāng)所有的 operator task 成功存儲(chǔ)了它們的狀態(tài),一個(gè)檢查點(diǎn)才算完成蒙挑。因此宗侦,當(dāng)從潛在的系統(tǒng)故障中恢復(fù)時(shí),系統(tǒng)提供了 excatly-once 的狀態(tài)更新語(yǔ)義忆蚀。

第一步:

如下所示矾利,一個(gè) Kafka topic,有兩個(gè)partition蜓谋,每個(gè)partition都含有 “A”, “B”, “C”, ”D”, “E” 5條消息梦皮。我們將兩個(gè)partition的偏移量(offset)都設(shè)置為0.

第二步:

Kafka comsumer(消費(fèi)者)開(kāi)始從 partition 0 讀取消息。消息“A”正在被處理桃焕,第一個(gè) consumer 的 offset 變成了1剑肯。


第三步

消息“A”到達(dá)了 Flink Map Task。兩個(gè) consumer 都開(kāi)始讀取他們下一條消息(partition 0 讀取“B”观堂,partition 1 讀取“A”)让网。各自將 offset 更新成 2 和 1 呀忧。同時(shí),F(xiàn)link 的 JobMaster 開(kāi)始在 source 觸發(fā)了一個(gè)檢查點(diǎn)溃睹。


第四步

接下來(lái)而账,由于 source 觸發(fā)了檢查點(diǎn),Kafka consumer 創(chuàng)建了它們狀態(tài)的第一個(gè)快照(”offset = 2, 1”)因篇,并將快照存到了 Flink 的 JobMaster 中泞辐。Source 在消息“B”和“A”從partition 0 和 1 發(fā)出后,發(fā)了一個(gè) checkpoint barrier竞滓。Checkopint barrier 用于各個(gè) operator task 之間對(duì)齊檢查點(diǎn)咐吼,保證了整個(gè)檢查點(diǎn)的一致性。消息“A”到達(dá)了 Flink Map Task商佑,而上面的 consumer 繼續(xù)讀取下一條消息(消息“C”)锯茄。


第五步

Flink Map Task 收齊了同一版本的全部 checkpoint barrier 后,那么就會(huì)將它自己的狀態(tài)也存儲(chǔ)到 JobMaster茶没。同時(shí)肌幽,consumer 會(huì)繼續(xù)從 Kafka 讀取消息。

第六步

Flink Map Task 完成了它自己狀態(tài)的快照流程后抓半,會(huì)向 Flink JobMaster 匯報(bào)它已經(jīng)完成了這個(gè) checkpoint喂急。當(dāng)所有的 task 都報(bào)告完成了它們的狀態(tài) checkpoint 后,JobMaster 就會(huì)將這個(gè) checkpoint 標(biāo)記為成功琅关。從此刻開(kāi)始煮岁,這個(gè) checkpoint 就可以用于故障恢復(fù)了。值得一提的是涣易,F(xiàn)link 并不依賴(lài) Kafka offset 從系統(tǒng)故障中恢復(fù)画机。


故障恢復(fù)

在發(fā)生故障時(shí)(比如,某個(gè) worker 掛了)新症,所有的 operator task 會(huì)被重啟步氏,而他們的狀態(tài)會(huì)被重置到最近一次成功的 checkpoint。Kafka source 分別從 offset 2 和 1 重新開(kāi)始讀取消息(因?yàn)檫@是完成的 checkpoint 中存的 offset)徒爹。當(dāng)作業(yè)重啟后荚醒,我們可以期待正常的系統(tǒng)操作,就好像之前沒(méi)有發(fā)生故障一樣隆嗅。如下圖所示:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末界阁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胖喳,更是在濱河造成了極大的恐慌泡躯,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異较剃,居然都是意外死亡咕别,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)写穴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惰拱,“玉大人,你說(shuō)我怎么就攤上這事啊送〕ザ蹋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵删掀,是天一觀的道長(zhǎng)翔冀。 經(jīng)常有香客問(wèn)我导街,道長(zhǎng)披泪,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任搬瑰,我火速辦了婚禮款票,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泽论。我一直安慰自己艾少,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布翼悴。 她就那樣靜靜地躺著缚够,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鹦赎。 梳的紋絲不亂的頭發(fā)上谍椅,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音古话,去河邊找鬼雏吭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛陪踩,可吹牛的內(nèi)容都是我干的杖们。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肩狂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼摘完!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起傻谁,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤孝治,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體荆秦,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篱竭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了步绸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掺逼。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瓤介,靈堂內(nèi)的尸體忽然破棺而出吕喘,到底是詐尸還是另有隱情,我是刑警寧澤刑桑,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布氯质,位于F島的核電站,受9級(jí)特大地震影響祠斧,放射性物質(zhì)發(fā)生泄漏闻察。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一琢锋、第九天 我趴在偏房一處隱蔽的房頂上張望辕漂。 院中可真熱鬧,春花似錦吴超、人聲如沸钉嘹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)跋涣。三九已至,卻和暖如春鸟悴,著一層夾襖步出監(jiān)牢的瞬間陈辱,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工遣臼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留性置,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓揍堰,卻偏偏與公主長(zhǎng)得像鹏浅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子屏歹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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