1. 程式人生 > >Storm與Flink的比較

Storm與Flink的比較

Storm與Flink的比較

比較項 Storm Flink
狀態管理 無狀態,需使用者自行進行狀態管理 有狀態
視窗支援 對事件視窗支援較弱,快取整個視窗的所有資料,視窗結束時一起計算 視窗支援較為完善,自帶一些視窗聚合方法,並且會自動管理視窗狀態。
訊息投遞 At Most Once At Least Once At Most Once At Least Once Exactly Once
容錯方式 ACK機制 :對每個訊息進行全鏈路跟蹤,失敗或超時進行重發。 檢查點機制 :通過分散式一致性快照機制,對資料流和運算元狀態進行儲存。在發生錯誤時,使系統能夠進行回滾。
應用現狀 在美團點評實時計算業務中已有較為成熟的運用,有管理平臺、常用 API 和相應的文件,大量實時作業基於 Storm 構建。 在美團點評實時計算業務中已有一定應用,但是管理平臺、API 及文件等仍需進一步完善。

單執行緒的吞吐量

在這裡插入圖片描述
(圖片參考來自美團技術團隊)

  • 上圖中藍色柱形為單執行緒 Storm 作業的吞吐,橙色柱形為單執行緒 Flink 作業的吞吐。
  • Identity 邏輯下,Storm 單執行緒吞吐為 8.7 萬條/秒,Flink 單執行緒吞吐可達 35 萬條/秒。
  • 當 Kafka Data 的 Partition 數為 1 時,Flink 的吞吐約為 Storm 的 3.2 倍;當其 Partition 數為 8 時,Flink 的吞吐約為 Storm 的 4.6 倍。
  • 由此可以看出,Flink 吞吐約為 Storm 的 3-5 倍。