本文主要是介绍4.1.26 Flink-流处理框架-Flink中的容错机制之一致性检查点(checkpoint),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.写在前面(引申出定义)
2.一致性检查点
1.写在前面(引申出定义)
Flink 具体如何保证 exactly-once 呢? 它使用一种被称为"检查点"(checkpoint) 的特性,在出现故障时将系统重置回正确状态。下面通过简单的类比来解释检查点的作用。
假设你和两位朋友正在数项链上有多少颗珠子,如下图所示。你捏住珠子,边 数边拨,每拨过一颗珠子就给总数加一。你的朋友也这样数他们手中的珠子。当你 分神忘记数到哪里时,怎么办呢? 如果项链上有很多珠子,你显然不想从头再数一 遍,尤其是当三人的速度不一样却又试图合作的时候,更是如此(比如想记录前一分 钟三人一共数了多少颗珠子,回想一下一分钟滚动窗口)。
于是,你想了一个更好的办法: 在项链上每隔一段就松松地系上一根有色皮筋, 将珠子分隔开; 当珠子被拨动的时候,皮筋也可以被拨动; 然后,你安排一个助手, 让他在你和朋友拨到皮筋时记录总数。用这种方法,当有人数错时,就不必从头开 始数。相反,你向其他人发出错误警示,然后你们都从上一根皮筋处开始重数,助手则会告诉每个人重数时的起始数值,例如在粉色皮筋处的数值是多少。
Flink 检查点的作用就类似于皮筋标记。数珠子这个类比的关键点是: 对于指定 的皮筋而言,珠子的相对位置是确定的; 这让皮筋成为重新计数的参考点。总状态 (珠子的总数)在每颗珠子被拨动之后更新一次,助手则会保存与每根皮筋对应的检 查点状态,如当遇到粉色皮筋时一共数了多少珠子,当遇到橙色皮筋时又是多少。 当问题出现时,这种方法使得重新计数变得简单。
2.一致性检查点
这篇关于4.1.26 Flink-流处理框架-Flink中的容错机制之一致性检查点(checkpoint)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!