- Flink故障恢复机制的核心,就是应用状态的一致性检查点(Checkpoint)
- 有状态流应用的一致性检查点,就是在某个时间点的一份拷贝(一份快照),在这个时间点是所有任务都恰好处理完一个相同的输入数据的时间
此应用有一个source task,消费一个递增数的流,如1,2,3等等。流中的数据被分区到一个基数流,一个偶数流。在一个sum operator中,有两个task,分别用于累加基数与偶数。Source task 存储当前输入流的偏移量作为state。Sum task 将当前的累加和作为state并存储。上图中,在输入偏移量为5时,Flink做了一个检查点,此时两个task的累加和分别为6和9。 - 在流的执行过程中,Flink会定时做Checkpoint,当程序出现故障时,Flink会以最近的检查点,一致性的恢复application的状态,并重新开始执行。具体步骤如下
-
- 首先,当遇到程序失败的宕机等情况时 如下图
- 首先,当遇到程序失败的宕机等情况时 如下图
-
- Flink首先会重启应用
- Flink首先会重启应用
-
- 然后从最近的Checkpoint中读取状态,将状态重置
- 然后从最近的Checkpoint中读取状态,将状态重置
-
- 从检查点重新启动应用程序后,其内部状态与检查点完成时的状态完全相同,然后接着经行流数据处理
- 从检查点重新启动应用程序后,其内部状态与检查点完成时的状态完全相同,然后接着经行流数据处理
Flink容错机制
最新推荐文章于 2024-07-23 16:33:07 发布