使用 operator state的方式有以下几种:
方式一:
stateful function(RichFunction) 实现 CheckpointFunction 接口
必须实现两个方法:
Void snapshotState(FunctionSnapshotContext context) throws Exception;
Checkpoint 执行时调用
Void initializeState(FunctionInitializationContext context) throws Exception;(初始化以及恢复逻辑)
Stateful function 第一次初始化时调用
Stateful function 从较早的 checkpoint恢复时调用
方式二:
stateful function(RichFunction) 实现 ListCheckpointed 接口,只用ListState 的重分配方式
必须实现两个方法
List<T> snapshotState(long checkpointId,long timestamp) throws Exception;
Checkpoint 执行时调用
void restoreState(List<T> state) throws Exception;
Stateful function 从较早的 checkpoint 恢复时调用。