Flink 容错机制主要包括:
-
一致性检查点(checkpoint)
-
从检查点恢复状态
-
Flink 检查点算法
-
保存点(save points)
一致性检查点(checkpoint)
下图为flink程序处理一个数据流内部的完整过程,我们对改图的处理过程做一个大致的描述就是,有一批数据,比如从1 ~100的数据源不断的被flink的source读取进来;
假如当前的程序要做的事情是,将读取到的奇数和偶数通过两个不同的task进行分别的计算,在某个时刻,flink程序所在环境因为某种原因突然断掉了,试想如果没有某种机制能够保障服务恢复后能够重新按照之前的这个点继续的话,这将是一个很糟糕的事情;
假如flink程序正好是读到5的这个时间点的时候服务挂掉的,设想下,当前的两个并行的task任务的状态,对于奇数的task来说,在source读到5这个数据的时候,已经计算的结果是: 2 + 4 = 6 了,对于偶数任务的task来说,准备计算的结果是: 1 + 3 + 5 = 9;
如果在这个时候,服务挂掉,如果需要某种机制能够保证
Flink的容错机制包括一致性检查点和保存点。一致性检查点是所有任务在处理完相同数据点时的状态快照,确保在故障后能恢复到精确一次的状态。检查点通过分界线(barrier)实现,当所有任务确认状态保存到检查点后完成。保存点是用户手动触发的检查点,可用于备份、更新和迁移等。
订阅专栏 解锁全文
2018

被折叠的 条评论
为什么被折叠?



