代码之家  ›  专栏  ›  技术社区  ›  Tom

Flink中savepoint和checkpoint的区别

  •  0
  • Tom  · 技术社区  · 6 年前

    我知道在stackoverflow上也有类似的问题,但是在调查了其中的几个之后,我知道

    1. savepoint 手动触发,而 checkpoint 被触发 自动

    2. 他们使用不同的存储格式

    但这些并不是令人困惑的地方,我不知道什么时候该用一个,什么时候该用另一个。

    考虑以下两种情况:

    1. 如果由于某种原因需要关闭或重新启动整个应用程序(例如错误修复或意外崩溃),则必须使用 保存点 恢复整个应用程序?
    2. 我以为 检查点 仅在Flink内部用于应用程序运行时的容错,即应用程序本身正在运行,但任务或其他事情可能会失败,即Flink将使用 检查点 为了国家恢复?
    3. 还有 externalized checkpoint ,我想和 保存点 在功能上,也就是说, 外部化检查点 也可以用于从重新启动的应用程序中恢复?
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jiayi Liao    6 年前

    Flink是否使用检查点进行状态恢复?

    基本上你是对的。正如您所说,检查点通常在Flink内部用于容错,它更像是框架内的一个概念当应用程序失败时,程序将尝试从最新的检查点重新启动。这就是检查点在弗林克的工作原理,没有任何人的干涉。

    我应该使用savepoint恢复整个应用程序以修复错误吗?

    对。在这些情况下,您不希望从检查点还原,因为最近的检查点可能发生在几分钟前。相反,您希望对整个应用程序的当前状态进行快照,并从最新的保存点重新启动它,这可能是恢复应用程序而无需太多延迟的最快方法。

    外部化检查点。

    它仍然是检查点,但将根据您的配置在外部持久化。它可以用于恢复应用程序,但是由于检查点之间存在间隔,所以状态不是实时的。

    有关更多信息,请查看以下博客文章: https://data-artisans.com/blog/differences-between-savepoints-and-checkpoints-in-flink .