flink1.12.x Checkpoint检查点流程

执行流程

创建 CheckpointCoordinator

当flink程序 设置 checkpoint 开启(默认不开启),在程序启动时,JobManager 为其创建一个 CheckpointCoordinator (Checkpoint协调器)

第一步

CheckpointCoordinator周期性的向所有 source 算子发送barrier(栅栏)

第二步

  1. 当某个 source 算子收到一个 barrier 时,会 暂停自己数据处理
  2. 然后将自己的 当前状态制作成快照,并 保存到指定的持久化存储中
  3. 向 CheckpointCoordinator 报告结果
  4. 向所有下游算子 广播 该 barrier
  5. source 算子恢复数据处理

第三步

过程同第二步

  1. 下游算子收到barrier之后,会 暂停自己的数据处理
  2. 然后将自身的 相关状态制作成快照,并 保存到指定的持久化存储中
  3. 向 CheckpointCoordinator 报告结果
  4. 向所有下游算子广播该 barrier
  5. 当前算子恢复数据处理

第四步

  1. barrier传递到sink算子,完成快照
  2. 当 CheckpointCoordinator 收到所有算子的报告之后,认为该周期的快照制作成功;
  3. 如果在 规定的时间内 没有收到所有算子的报告,则认为本周期快照制作 失败 ;

参考:
https://www.jianshu.com/p/4d31d6cddc99


原文出处:/show_1IX49M91xxHc.html