我知道在stackoverflow上也有类似的问题,但是在研究了其中几个问题之后,我知道了
savepoint
手动触发,而checkpoint
触发
自动
他们正在使用不同的存储格式
但是这些并不是令人困惑的地方,我不知道何时使用一个或何时使用另一个。
请考虑以下两种情况:
savepoint
来还原整个应用程序吗? checkpoint
仅在Flink内部用于在应用程序运行时(即应用程序本身正在运行)提供容错功能,但是任务或其他事情可能会失败,即Flink将使用{{ 1}}进行状态恢复? checkpoint
,我认为它与externalized checkpoint
的功能相同,也就是说,savepoint
也可以用于从重新启动的应用程序中恢复吗?答案 0 :(得分:0)
Flink是否使用检查点进行状态恢复?
基本上您是对的。如您所说,检查点通常在Flink内部用于容错,它更像是框架内的概念。当您的应用程序失败时,程序将尝试从最新的检查点重新启动。这就是检查点在Flink中的工作方式,而无需任何人工干预。
我应该使用savepoint还原整个应用程序以修复错误吗?
是的。在这些情况下,您不想从检查点还原,因为最新的检查点可能在几分钟前发生。相反,您想对整个应用程序的当前状态进行快照,然后从最新的保存点重新启动它,这可能是恢复应用程序的最快方法,而不会造成太多延迟。
外部检查点。
它仍然是检查点,但将根据您的配置在外部保留。它可以用来还原应用程序,但是状态不是那么实时,因为检查点之间存在间隔。
有关更多信息,请查看此博客文章:https://data-artisans.com/blog/differences-between-savepoints-and-checkpoints-in-flink。