Flink的checkPoint原理
1.知识前置
Flink检查点算法:检查点分界线(Checkpoint Barrier)
Flink 的检查点算法用到了一种称为分界线(barrier)的特殊数据形式,用来把一条流上数据按照不同的检查点分开。
2.正文开始
*2.1.*JobManager 会向每个 source 任务发送一条带有新检查点 ID 的消息,通过这种方式来启动检查点,检查点分界线由 source 算子注入到常规的数据流中,它的位置是限定好的,不能超过其他数据,也不能被后面的数据超过。
*2.2.*当source源遇到检查点分界线时,就会把自身维护的最新状态(偏移量)保存到状态后端中去并继续处理数据,同时向其下游发送检查点分界线;当状态后端存完检查点之后,就会通知source任务,source任务就会向JobManager确认检查点完成。
主要通过检查点分界线(checkPoint),这个由JobManager产生的特殊形式并插入到流数据中,先从Source源出开始插入并向下游并行的子任务广播下去。