flink checkpoint barrier对齐机制

flink的checkpoint 采用了 Chandy-Lamport 机制,分布式快照

开启checkpoint 需要指定checkpoint的周期和checkpoint的模式

在开启checkpoint后,假如指定了 10秒 一次,ck模式为 exactly once (barrier对其模式)

前10秒的数据流过去之后,此时jobmanager向各个subtask进程发送一个ckeckpoint准备请求,且会从source端往数据流中插入一个barrier标记,每个subtask收到这个barrier后要进行状态的备份。

一个subtask的数据如果只来自于上游的一个subtask,此时遇到barrier后直接备份当前状态,并且向jobmanager发送ack响应。如果一个subtask来自上游多个subtask,因为上有subtask的barrier到达有早有晚,上游最早的barrier到达之后,收到其他上游数据后被缓存到内存中,不会进行处理,直到上游最晚的barrier到达后,这个subtask会进行一次状态备份,并且向jobmanager发送ack响应。简单说就是多个上游任务向同一个下游任务传递分界线时,需要在下游任务执行"barrier对齐"操作,也就是需要等到所有并行分区的barrier都到齐,才可以开始状态的保存。

jobmanager 收到所有的ack响应后。才认为本次checkpoint是完整的,然后给各个subtask发送callBack通知,告诉他们这次checkpoint成功,

当最终的sink端收到了callBack响应后,就会进行commit,比如支持事务的jdbcsink.exactlyOnceSink(),在收到callback后才会进行commit

上述流程就是flink中 barrier对齐的checkpoint算法

相关推荐
一只专注api接口开发的技术猿1 小时前
企业级电商数据对接:1688 商品详情 API 接口开发与优化实践
大数据·前端·爬虫
今天我又学废了3 小时前
Spark,SparkSQL操作Mysql, 创建数据库和表
大数据·mysql·spark
杰克逊的日记4 小时前
Flink运维要点
大数据·运维·flink
markuszhang8 小时前
Elasticsearch 官网阅读之 Term-level Queries
大数据·elasticsearch·搜索引擎
Hello World......9 小时前
Java求职面试:从核心技术到大数据与AI的场景应用
大数据·java面试·技术栈·互联网大厂·ai服务
python算法(魔法师版)11 小时前
.NET NativeAOT 指南
java·大数据·linux·jvm·.net
星川皆无恙11 小时前
大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)
大数据·人工智能·学习·语言模型·架构
L耀早睡12 小时前
mapreduce打包运行
大数据·前端·spark·mapreduce
姬激薄12 小时前
MapReduce打包运行
大数据·mapreduce
计算机人哪有不疯的12 小时前
Mapreduce初使用
大数据·mapreduce