所有使用checkpoint的程序都可以从savepoint恢复执行。savepoint允许更新您的程序和 Flink 集群,而不会丢失任何状态。
savepoint是手动触发的checkpoint,它进行程序snapshot并将其写入状态后端。 为此,他们依赖定期checkpoint机制。
savepoint与checkpoint类似,不同之处在于它是由用户触发的,并且在新的checkpoint完成时不会自动过期。
Exactly Once vs. At Least Once
对齐步骤可能会增加stream程序的延迟。 通常,这种额外的延迟约为几毫秒,但我们已经看到一些异常值的延迟明显增加的情况。 对于所有记录都需要一致超低延迟(几毫秒)的应用程序,Flink 有一个开关可以在checkpoint期间跳过 流对齐。 一旦算子 看到来自每个输入的checkpoint barrier,仍然会绘制checkpoint快照。
当跳过对齐时,算子会继续处理所有输入,即使在checkpoint n 的一些checkpoint barrier到达之后也是如此。 这样,在获取checkpoint n 的状态快照之前,算子还会处理属于checkpoint n+1 的元素。在恢复时,这些record将作为重复项出现,因为它们都包含在checkpoint n 的状态快照中,并且将在checkpoint n 之后作为数据的一部分重放。