Checkpoint功能可以保證作業失敗重啓或升級重啓後,從上次"離開"的位置繼續運行;
比如小米的Flink on Talos就是通過Checkpoint記錄消費的Offset記錄的;如果沒有開啓Checkpoint,那麼每次重啓作業可能會重複消費數據或者丟失數據(與配置相關);
下面來介紹:
- 如何開啓flink checkpoint
- java heapsize如何設置
- checkpoint最佳設置參數是多少
- 如何結合flink-rockDB實現高效flink狀態編程和穩定的checkpoint
1、開啓 Checkpoint
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
CheckpointConfig config = env.getCheckpointConfig();
config.setCheckpointInterval(5 * 60 * 1000); // Checkpoint的觸發頻率;
config.setMinPauseBetweenCheckpoints(5 * 60 * 1000); // Checkpoint之間的最小間隔;
config.setCheckpointTimeout(10 * 60 * 1000); // Checkpoint的超時時間;
config.setTolerableCheckpointFailureNumber(3); // 連續3次checkpoint失敗,纔會導致作業失敗重啓;默認值是0 。
config.enableExternalizedCheckpoints(ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION); // Cancel Job之後保留Checkpoint文件;
++