天天看點

Apache Flink Stream API之State & Fault Tolerance(章節四)

作者:jiangzz

電話:15652034180

微信:jiangzz_wx

微信公衆賬号:jiangzz_wy

State & Fault Tolerance

針對于流處理的有狀态function和operators可以存儲流計算過程中的每個Event的計算狀态。狀态計算是建構精确操作不會或缺的闆塊。Flink需要獲知計算節點的狀态,進而使用checkpoint和savepoint機制實作資料的故障恢複和容錯。其中Queryable State允許外部在Flink運作過程中查詢資料狀态,當使用者使用State操作flink提供了state backend機制用于存儲狀态資訊,其中計算狀态可以存儲在Java的堆内和堆外,這取決于采取的statebackend機制。配置Statebackend不會影響應用的處理邏輯。

State Backends

Flink提供了不同的Sate backend,用于指定狀态的存儲方式和位置。 根據您的State Backend,State可以位于Java的堆上或堆外。Flink管理應用程式的Sate,這意味着Flink處理記憶體管理(如果需要可能會溢出到磁盤)以允許應用程式保持非常大的狀态。預設情況下,配置檔案flink-conf.yaml确定所有Flink作業的狀态後端。 但是,可以基于每個作業覆寫預設狀态後端,如下所示。

var env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setStateBackend(...);
<
           

繼續閱讀