flink 通過實作了 Google Dataflow 流式計算模型實作了高吞吐、低延遲、高性能兼具實時流式計算框架,
同時 flink 支持高度容錯的狀態管理,防止狀態在計算程序中因為系統例外而丟失,flink 周期性地通過分布式快照技術 Checkpoints 實作狀態的持久化維護,使得即使在系統停機或者例外情況下都能計算出正確的結果,
具體的優勢有以下幾點
(1) 同時支持高吞吐、低延遲、高性能
是目前開源社區中唯一一套集高吞吐、低延遲、高性能三者于一身的分布式流式資料處理框架,
像 Apache Spark 也只能兼顧高吞吐和高性能特性,無法做到低延遲保障
Apache Storm 只能支持低延時和高性能特性,無法滿足高吞吐的要求
(2)支持事件時間(Event Time)概念
在流式計算領域中,視窗計算的地位舉足輕重,但目前大多數框架視窗計算采用的都是系統時間(Process Time),也是事件傳輸到計算框架處理時,系統主機的當前時間,
Flink 能夠支持基于事件時間(Event Time)語意進行視窗計算,這種基于事件驅動的機制使得事件即使亂序到達,流系統也能夠計算出精確的結果,保持了事件原本產生時的時序性,盡可能避免網路傳輸或硬體系統的影響,
(3)支持有狀態計算
所謂狀態就是在流式計算程序中將算子的中間結果保存在記憶體或者檔案系統中,等下一個事件進入算子后可以從之前的狀態中獲取中間結果,計算當前的結果,從而無須每次都基于全部的原始資料來統計結果,極大的提升了系統性能
(4)支持高度靈活的視窗(Window)操作
Flink 將視窗劃分為基于 Time 、Count 、Session、以及Data-Driven等型別的視窗操作,視窗可以用靈活的觸發條件定制化來達到對復雜的流傳輸模式的支持,用戶可以定義不同的視窗觸發機制來滿足不同的需求
(5)基于輕量級分布式快照(Snapshot)實作的容錯
Flink 能夠分布運行在上千個節點上,通過基于分布式快照技術的Checkpoints,將執行程序中的狀態資訊進行持久化存盤,一旦任務出現例外停止,Flink 能夠從 Checkpoints 中進行任務的自動恢復,以確保資料愛處理程序中的一致性
(6) 基于 JVM 實作的獨立的記憶體管理
Flink 實作了自身管理記憶體的機制,盡可能減少 JVM GC 對系統的影響,
通過序列化/反序列化機制將所有的資料物件轉換成二進制在記憶體中存盤,降低資料存盤大小的同時,更加有效的利用空間,降低GC帶來的性能下降或任務例外的風險
(7)Save Points 保存點
對于 7 * 24 小時運行的流式應用,資料源源不斷的流入,在一段時間內應用的終止有可能導致資料的丟失或者計算結果的不準確,
比如集群版本的升級,停機運維操作等,
值得一提的是,Flink 通過Save Points 技術將任務執行的快照保存在存盤介質上,當任務重啟的時候,可以從事先保存的 Save Points 恢復原有的計算狀態,使得任務繼續按照停機之前的狀態運行,
還在等什么,快去使用 flink 吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/1976.html
標籤:Scala
上一篇:R語言入門:向量初探
