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

相关推荐
泛普软件4 分钟前
工程公司项目管理系统选型要点,解决项目超支工期拖延难题
大数据·软件需求
Elastic 中国社区官方博客17 分钟前
跟踪资金流向:使用 ES|QL 和跨集群搜索追踪洗钱网络
大数据·人工智能·安全·elasticsearch·搜索引擎·金融·全文检索
TTBIGDATA23 分钟前
【Ambari Plus】10.HBase 安装
大数据·运维·hadoop·ambari·hdp·cdh·bigtop
汤姆yu2 小时前
macOS系统下Aider完整安装、配置与实战使用教程
大数据·人工智能·算法·macos·github·copilot
长和信泰光伏储能2 小时前
探索未来能源:光伏储能技术解析
大数据·人工智能·能源
阿标在干嘛3 小时前
从全表扫描到毫秒响应:政策快报平台的索引优化实战
大数据
agent8973 小时前
Elasticsearch 慢查询排查:从 Mapping、分片、分页到聚合优化
大数据·elasticsearch·django
今日综合4 小时前
2026精选教务管理系统深度分析:功能差异、收费模式全拆解
大数据·人工智能
thubier(段新建)4 小时前
OWTB 3PL 核心主流程与行业落地方案
大数据·人工智能
YangYang9YangYan4 小时前
2026大数据专业毕业学数据分析的价值
大数据·数据挖掘·数据分析