public interface CheckpointedFunction {
// Checkpoint触发时会调用这个方法,我们要实现具体的snapshot逻辑,比如将哪些本地状态持久化
void snapshotState(FunctionSnapshotContext context) throws Exception;
// 第一次初始化时会调用这个方法,或者从之前的检查点恢复时也会调用这个方法
void initializeState(FunctionInitializationContext context) throws Exception;
}
可以自定义把哪些变量如何保存到检查点,以及如何初始化、如何从检查点恢复
public class MyFunction<T> implements MapFunction<T, T>, CheckpointedFunction {
private ReducingState<Long> countPerKey;
private ListState<Long> countPerPartition;
private long localCount;
public void initializeState(FunctionInitializationContext context) throws Exception {
// get the state data structure f