Flink 原理 | Flink 新一代流計(jì)算和容錯(cuò)——階段總結(jié)和展望
摘要:本文整理自 Apache Flink 引擎架構(gòu)師、阿里巴巴存儲(chǔ)引擎團(tuán)隊(duì)負(fù)責(zé)人梅源在 Flink Forward Asia 2021 核心技術(shù)專(zhuān)場(chǎng)的演講。本次演講內(nèi)容圍繞 Flink 的高可用性探討 Flink 新一代流計(jì)算的核心問(wèn)題和技術(shù)選型,包括:
Flink 高可用流計(jì)算的關(guān)鍵路徑 容錯(cuò) (Fault Tolerance) 2.0 及關(guān)鍵問(wèn)題 數(shù)據(jù)恢復(fù)過(guò)程 穩(wěn)定快速高效的 Checkpointing 云原生下容錯(cuò)和彈性擴(kuò)縮容
一、高可用流計(jì)算的關(guān)鍵路徑

二、容錯(cuò) (Fault Tolerance) 2.0
及關(guān)鍵問(wèn)題

容錯(cuò)也是多維度的問(wèn)題,不同的用戶(hù)、不同的場(chǎng)景對(duì)容錯(cuò)都有不同需求,主要包括以下幾個(gè)方面:
數(shù)據(jù)一致性 (Data Consistency),有些應(yīng)用比如在線(xiàn)機(jī)器學(xué)習(xí)是可以容忍部分?jǐn)?shù)據(jù)丟失; 延遲 (Latency),某些場(chǎng)景對(duì)端到端的延遲要求沒(méi)那么高,所以可以將正常處理和容錯(cuò)恢復(fù)的時(shí)候要做的工作綜合平均一下; 恢復(fù)時(shí)的行為表現(xiàn) (Recovery Behavior),比如大屏或者報(bào)表實(shí)時(shí)更新的場(chǎng)景下,可能并不需要迅速全量恢復(fù),更重要的在于迅速恢復(fù)第一條數(shù)據(jù); 代價(jià) (Cost),用戶(hù)根據(jù)自己的需求,愿意為容錯(cuò)付出的代價(jià)也不一樣。綜上,我們需要從不同的角度去考慮這個(gè)問(wèn)題。
三、Flink 中的數(shù)據(jù)恢復(fù)過(guò)程





四、穩(wěn)定快速高效的 Checkpointing

針對(duì)中間數(shù)據(jù)流動(dòng)緩慢,可以:
想辦法不被中間數(shù)據(jù)堵塞:Unaligned Checkpoint——直接跳過(guò)阻塞的中間數(shù)據(jù); 或者讓中間的數(shù)據(jù)變得足夠少:Buffer Debloating。 針對(duì)狀態(tài)數(shù)據(jù)過(guò)大,我們需要將每次做 Checkpoint 時(shí)上傳的數(shù)據(jù)狀態(tài)變得足夠小:Generalized Log-Based Incremental Checkpoint。
4.1 Unaligned Checkpoint

4.2 Buffer Debloating


4.3 Generalized Log-Based Incremental Checkpoint


五、云原生下容錯(cuò)和彈性擴(kuò)縮容



往期精選
?
??戳我,查看原文視頻&演講PDF~
評(píng)論
圖片
表情



