1、flink 、spark streaming 、storm 的異同:
flink 架構和容錯方面 和spark Straming storm 異同。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP35UeZR1T3dGRNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5AzMxQDN0MTMwMjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
flink 和storm 、sparkstreaming 在處理模型延遲和資料保證時異同:
現有的開源計算方案,會把流處理和批處理作為兩種不同的應用類型:流處理一般需要支援低延遲、Exactly-once保證,而批處理需要支援高吞吐、高效處理。
而flink 在低延遲和資料順序方面(利用水印)等都相對spark streaming 更具優勢
2、flink 的事件驅動型應用
事件型應用是一類具有狀态的應用,它從一個或多個事件流提取資料,并根據到來的事件去觸發計算、狀态更新或其它外部動作。
事件驅動型應用實在計算存儲分離的傳統應用基礎上進化而來,在傳統的架構中,應用需要讀寫遠端事務型資料庫。
相反,事件驅動型應用是基于狀态化流處理來完成,在該設計中,資料和計算不會分離,應用隻要通路本地(記憶體或磁盤)即可擷取資料。系統容錯性的實作依賴于定期向遠端持久化存儲寫入checkpoint.下圖是傳統應用和事件驅動應用架構差別。
3、flink Exactly-once保證研究
參考:http://www.whitewood.me/2018/10/16/Flink-Exactly-Once-%E6%8A%95%E9%80%92%E5%AE%9E%E7%8E%B0%E6%B5%85%E6%9E%90/