flink1.12.x Checkpoint检查点算法Barrier

说明

检查点算法的核心就是检查点栅栏(Checkpoint Barrier)

第一步

Barrier可以理解为 特殊的数据,插入到数据流中,作为数据流的一部分,随着数据流动,这些barrier不会跨越流中的数据,如下图:

第二步

如下图:数据流中插入 barrier,当 barrier 流入到算子map(),就开始执行快照。

每个 barrier 有一个 ID,表示该段数据属于 哪一次的 Checkpoint

当 ID 为 1 的 barrier 到达 map() 算子后,会把数据流分成 两部分:

  • barrier 之前的数据:将其状态保存到 当前 快照中

  • barrier 之后的数据:将其状态保存到 下一个 快照

第三步

barrier 跟数据流一块往下游流动,执行下一个算子

当 ID 为 2 的 barrier 到达 map() 算子后,开始执行 checkpoint 2

在流中,同一时间可以有多个 barrier,可以 并发的出现不同的快照

参考:
https://blog.csdn.net/zznanyou/article/details/121347608
https://www.jianshu.com/p/4d31d6cddc99


原文出处:/show_1IX49N43iW89.html