Flink是如何实现 End-To-End Exactly-once的?

flink 如何实现端到端的 Exactly-once?

端到端包含 Source, Transformation,Sink 三部分的Exactly-once

  • Source:支持数据的replay,如Kafka的offset。
  • Transformation:借助于checkpoint
  • Sink:Checkpoint + 两阶段事务提交

两阶段提交?

  • 一旦Flink开始做checkpoint操作,就会进入pre-commit "预提交"阶段,同时JobManagerCoordinator会将Barrier注入数据流中。
  • 当所有的barrier在算子中成功进行一遍传递(就是Checkpoint完成),并完成快照后,"预提交"阶段完成。
  • 等所有的算子完成"预提交",就会发起一个commit "提交"动作,但是任何一个"预提交" 失败都会导致Flink回滚到最近的checkpoint。

两阶段提交API

beginTransaction:在开启事务之前,我们在目标文件系统的临时目录中创建一个临时文件,后面在处理数据时将数据写入此文件。

preCommit:在预提交阶段,刷写(flush)文件,然后关闭文件,之后就不能写入到文件了,我们还将为属于下一个检查点的任何后续写入启动新事务。

commit:在提交阶段,我们将预提交的文件原子性移动到真正的目标目录中,请注意,这回增加输出数据可见性的延迟。

abort:在中止阶段,我们删除临时文件。

参考:

https://www.cnblogs.com/kunande/p/17142718.html

相关推荐
一只幸运猫.6 分钟前
核心概念层——深入理解 Agent 是什么
大数据·数据库·人工智能
金融Tech趋势派2 小时前
2026企业微信AI服务商实测:微盛·企微管家领跑私域客户运营赛道
大数据·人工智能·企业微信
青岛前景互联信息技术有限公司2 小时前
又到一年开学季,大学校园安全管理中的突出问题分析
大数据·人工智能·物联网
萤丰信息3 小时前
避坑指南+案例拆解,智慧园区建设如何少走弯路
大数据·智慧城市
柏颖漫谈3 小时前
欧洲汽车可能正扶持韩国电池制衡中国电池,不希望完全受制于人,但已经晚了
大数据·人工智能·汽车
成旭先生3 小时前
【2026年可用】企业信息查询API接口
java·大数据·模糊查询·企业信息
谁似人间西林客3 小时前
解析工业大数据在制造业转型中的应用场景与价值
大数据
青岛前景互联信息技术有限公司3 小时前
从被动处置到主动防控:智能接处警带来的四大核心价值
大数据·人工智能·物联网
Irene19913 小时前
PMP管理大数据学习建议
大数据·学习·pmp
幂律智能3 小时前
法律人的AI技术词典:从LLM到Agent
大数据·人工智能