flink有什麼優點值得你們這麼熱衷

flink 經過實現了 Google Dataflow 流式計算模型實現了高吞吐、低延遲、高性能兼具實時流式計算框架。網絡

同時 flink 支持高度容錯的狀態管理,防止狀態在計算過程當中由於系統異常而丟失,flink 週期性地經過分佈式快照技術 Checkpoints 實現狀態的持久化維護,使得即便在系統停機或者異常狀況下都能計算出正確的結果。框架

具體的優點有如下幾點運維

(1) 同時支持高吞吐、低延遲、高性能分佈式

是目前開源社區中惟一一套集高吞吐、低延遲、高性能三者於一身的分佈式流式數據處理框架。性能

像 Apache Spark 也只能兼顧高吞吐和高性能特性,沒法作到低延遲保障orm

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 吧

相關文章
相關標籤/搜索