Flink的checkPoint原理
1.知识前置
Flink检查点算法:检查点分界线(Checkpoint Barrier)
Flink 的检查点算法用到了一种称为分界线(barrier)的特殊数据形式,用来把一条流上数据按照不同的检查点分开。
2.正文开始
*2.1.*JobManager 会向每个 source 任务发送一条带有新检查点 ID 的消息,通过这种方式来启动检查点,检查点分界线由 source 算子注入到常规的数据流中,它的位置是限定好的,不能超过其他数据,也不能被后面的数据超过。

*2.2.*当source源遇到检查点分界线时,就会把自身维护的最新状态(偏移量)保存到状态后端中去并继续处理数据,同时向其下游发送检查点分界线;当状态后端存完检查点之后,就会通知source任务,source任务就会向JobManager确认检查点完成。

主要通过检查点分界线(checkPoint),这个由JobManager产生的特殊形式并插入到流数据中,先从Source源出开始插入并向下游并行的子任务广播下去。

本文详细介绍了Flink的检查点(checkPoint)原理,包括检查点分界线的注入、状态保存、上下游任务的同步以及如何通过检查点实现端到端的exactly-once语义。Flink利用JobManager触发检查点,source任务保存状态,通过检查点分界线确保数据处理的完整性和一致性。在所有任务确认状态保存完成后,检查点完成,为故障恢复提供依据,从而实现精准一次性操作。
最低0.47元/天 解锁文章
1万+

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



