本文主要是介绍4.1.27 Flink-流处理框架-检查点恢复+flink检查点算法+保存点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.从检查点恢复状态
2.Flink的检查点的实现算法
2.1 检查点分界线
2.2 Flink的检查点的实现算法举例
3.保存点(Savepoints)
1.从检查点恢复状态
在执行流应用程序期间,Flink 会定期保存状态的一致检查点,如果发生故障, Flink 将会使用最近的检查点来一致恢复应用程序的状态,并重新启动处理流程。
遇到故障之后,第一步就是重启应用
第二步是从 checkpoint 中读取状态,将状态重置。从检查点重新启动应用程序后,其内部状态与检查点完成时的状态完全相同。
第三步:开始消费并处理检查点到发生故障之间的所有数据。这种检查点的保存和恢复机制可以为应用程序状态提供“精确一次” (exactly-once)的一致性,因为所有算子都会保存检查点并恢复其所有状态,这样一来所有的输入流就都会被重置到检查点完成时的位置。
2.Flink的检查点实现算法
Flink 检查点的核心作用是确保状态正确,即使遇到程序中断,也要正确。Flink 检查点算法的正式名称是异步分界线快照(asynchronous barrier snapshotting)。该算法大致基于 Chandy-Lamport 分布式快照算法。检查点是 Flink 最有价值的创新之一,因为它使 Flink 可以保证 exactly-once。
比如我们想要写完作业的同学(task manager)照一张班级合照,有的同学写的非常的快,我们可以先给这个写的快的同学先拍一张照片,让这个同学可以继续忙别的事情。其余同学来了,最后p在一起(job manager)就可以了,就是我们的所有写完作业的同学的班级合照。
2.1 检查点分界线
2.2 Flink的检查点的实现算法举例
3.保存点(Savepoints)
这篇关于4.1.27 Flink-流处理框架-检查点恢复+flink检查点算法+保存点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!