据我所知,键值状态接口允许在流程失败后恢复状态,但在重新部署流后无法恢复状态。
如果我想在重新部署后恢复状态,我应该实现Checkpointed
接口并保存/恢复状态从/到键值状态使用Checkpointed
接口的方法(+别忘了在部署之前创建保存点并使用创建的保存点运行新流。正确?
答案 0 :(得分:2)
使用本地用户实例状态的Checkpointed
接口或通过RuntimeContext
获得的每键状态,可以正确检查和恢复状态。实际上,使用每键状态更容易,因为您不需要实现任何检查点代码。
如果要明确停止Flink作业并在稍后恢复检查点状态的情况下恢复该作业,则可以使用Savepoints执行此操作。保存点使用与连续检查点相同的机制,允许您在发生故障时重新启动作业。