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

相关推荐
IanSkunk1 小时前
企业AI办公落地技术拆解:从WorkBuddy任务引擎到JOTO实施路径
大数据·人工智能
Xvisio诠视科技2 小时前
从“感知”到“理解”:空间计算如何成为具身智能世界模型的“数据底座”?
大数据·空间计算
jerryinwuhan2 小时前
数据预处理技术 2026-2027-1 开篇-课程介绍
大数据·python
Elastic 中国社区官方博客3 小时前
Elastic 和 OpenAI 合作,将前沿智能引入非结构化企业数据
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai
西邮彭于晏4 小时前
Git 标签(Tag)与版本发布完整指南|附全场景命令速查表
大数据·git·elasticsearch
梵构广告5 小时前
平台怎么做品牌营销策划?—品牌营销
大数据·人工智能·平面·品牌策划
AC赳赳老秦5 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
Aloudata5 小时前
Prompt 驱动分析 vs Skill 驱动分析:企业 AI 分析如何从会问走向可复用
大数据·人工智能·数据分析·prompt·skill·语义层
数字化老赵5 小时前
有没有什么好用的AI工具可以用在设备巡检管理的?
大数据·人工智能·设备管理·设备
2401_881203965 小时前
一网统管 | 赋能智慧养老,守护夕阳美好时光
大数据·智慧养老·一网统管