天天看點

Flink 狀态與容錯 ( state 和 Fault Tolerance)Flink 狀态與容錯

Flink 狀态與容錯

狀态性的函數和操作通過處理單個(元素/事件)存儲資料,使任何類型的state建構更複雜的操作。

例如:

  • 當應用程式針對特定事件模式進行搜尋的時候,state将會存儲到目前為止的一些列事件。
  • 當每 分鐘/小時/天 聚合事件的時候,state會持有所有等待聚合的資料。
  • 當在一連串的資料流上訓練機器學習模型時,state持有目前版本的模型參數。
  • 當曆史資料需要管理的時候,state允許高效的通路過去的資料

flink可以使用checkpoints對statue進行容錯管理,并且允許對流應用程式執行savepoint。

了解到應用程式的state可以重新調節,意味着flink負責重新配置設定并行執行個體的狀态。

Flink的queryable state允許你在flink運作時從外部接收state資料。

在工作的時候使用state,建議閱讀Flink's state backends。flink提供了不同的state backends 來指定如何存儲和把state資料存儲在哪。State可以存在于java堆中。依賴于你的state backends,flink還可以管理應用程式的狀态,意味着flink可以通過記憶體管理(必要時可以溢出到磁盤)來運作應用儲存非常大的state。state backends 可以在不改變應用程式的邏輯的情況下進行配置。

後面會有對應的專題文章解釋下面的内容

  • working with state:在flink應用中展示了如何使用state,并解釋了不同類型的狀态
  • checkpointing:描述了如何啟動和配置容錯的檢查點
  • queryable state:解釋如何在運作時通路flink以外的state
  • custom serialization for managed state:讨論了state的自定義序列化邏輯和它的更新
Flink 狀态與容錯 ( state 和 Fault Tolerance)Flink 狀态與容錯

繼續閱讀