Flink容错机制

余生约 541 字大约 2 分钟大数据组件FlinkCheckpoint状态一致性知识点

主要介绍Flink中的容错机制

检查点

检查点的保存

  1. 周期性触发保存

  2. 保存的时间点

    当所有的任务都恰好处理完一个相同的输入数据的时候,他们的状态被保存下来。

    避免处理状态意外的额外的信息的存储,提高了输入点保存的效率。

    另外,事务性

  3. 保存的具体流程

    image-20230605170239406
    image-20230605170239406

从检查点恢复状态

  1. 重启应用
  2. 读取检查点,重置状态
  3. 重放数据
  4. 继续处理数据

检查点算法

检查点边界线(Barrier)

在JobManager中有一个“检查点协调器”,专门用来协调处理检查点的相关工作。检查点协调器会定期向TaskManager发出指令,要求保存检查点(带着检查点ID);TaskManager会让所有的Source任务把自己的偏移量(算子状态)保存起来,并将带有检查点ID的分界线插入到当前的数据流中,然后像正常的数据一样像下游传递;之后Source任务就可以继续读入新的数据了。

image-20230605171531361
image-20230605171531361

分布式快照算法(Barrier对齐的精准一次)

异步分界线快照

  • 当上游向多个下游发送barrier,广播出去
  • 多个上游任务向同一个下游传递时,等所有的都对齐

分布式快照算法(Barrier对齐的至少一次)

分布式快照算法(非Barrier对齐的精准一次)

检查点配置

启用检查点

检查点存储

其他高级配置

通用增量checkpoint

最终检查点

保存点

保存点的用途

使用保存点

使用保存点切换状态后端

状态一致性

一致性的概念和级别

端到端的状态一致性

端到端精确一次

输入端保证

输出端保证

Flink和Kafka连接时的精确一次保证