



Data Source 会先从 kafka 里面读取数据
JobManger 会向 Data Source 中 发起 Checkpoint 指令并同时向 S ource 发送 barrier (检查点分界线),
如果这个Source 有多个并行,那么每个Source 都会有一个 barrier
这个 barrier 会把 Data Source 中的状态保存起来持久化到 State Backend 中 ,
然后 barrier 会向下个算子Window 中传递,然后我们假如会在 Window 中做一些聚合运算,然后再把他当前的状态 保存起来,持久化到 staState Backend 中,
再继续传递给下一个算子 Sink 中 ,同样把它当前的状态保存起来,持久化到 State Backend 中,
等到所有算子都完成了 Checkpo

博客详细描述了Exactly-once的两阶段提交过程,从Data Source从Kafka读取数据开始,通过JobManager协调各个算子的checkpoint,确保状态在State Backend中的持久化。当所有状态保存完成后,JobManager接收到ack后通知Subtask提交事务。如果提交失败,将从State Backend恢复状态并重试。预提交的数据在JobManager发送最终提交指令时才完成事务,以防止因机器宕机导致的脏数据问题。
最低0.47元/天 解锁文章
2386

被折叠的 条评论
为什么被折叠?



