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

相关推荐
geneculture1 小时前
人机互助新时代超级个体(OPC)的学术述评——基于人文学科与数理学科的双重视域
大数据·人工智能·哲学与科学统一性·信息融智学·融智时代(杂志)
zchxzl1 小时前
亲测2026京津冀可靠广告展会
大数据·人工智能·python
J2虾虾2 小时前
在Kylin Server上安装并配置MariaDB
大数据·mariadb·kylin
Elastic 中国社区官方博客5 小时前
Elasticsearch:创建 geocoding workflow,并在 agent 中使用它进行位置搜索
大数据·人工智能·elasticsearch·搜索引擎·ai·语言模型
TechubNews6 小时前
燦谷(Cango Inc)入局AI 資本重組彰顯決心
大数据·网络·人工智能·区块链
keke.shengfengpolang6 小时前
2026大专大数据技术专业男生就业岗位全攻略:从入门到进阶
大数据
heimeiyingwang6 小时前
企业内部知识管理:AI 驱动的文档检索与知识问答
大数据
yohalaser8 小时前
硬核智测赋能 武汉曜华激光加速钙钛矿产线产业化进程
大数据·运维·人工智能
Dr.AE10 小时前
AI+政务 行业分析报告
大数据·人工智能·政务
Howie Zphile10 小时前
# 组织增熵与全面预算管理的持续优化
java·大数据·数据库