1. 程式人生 > >Flink 狀態與容錯 ( state 和 Fault Tolerance)

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

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的自定義序列化邏輯和它的升級