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

相关推荐
大厂观察员5 分钟前
AI日记:BERT 和 GPT 选型难题怎么破
大数据·人工智能
GOWIN革文品牌咨询9 分钟前
B2B品牌架构实操:集团品牌、业务品牌、产品品牌的6问判断法
大数据·人工智能·重构·智能设备·b2b品牌策划·b2b品牌设计
咕噜签名-铁蛋14 分钟前
GPU型实例安装nvidia-fabricmanager服务完整实操指南
大数据·数据库·人工智能·ai编程
wzl202612131 小时前
基于规则引擎的新客欢迎语自动化:从0到1搭建智能破冰系统
大数据·运维·自动化
仗剑_走天涯1 小时前
Hadoop 安装
大数据·hadoop·分布式
不一样的故事1261 小时前
软件测试在未来10年
大数据·网络·人工智能·安全
武子康2 小时前
大数据-254 离线数仓 - Airflow 任务调度与工作流管理实战
大数据·后端·apache hive
NOCSAH2 小时前
持续进化:从ERP到数智一体化,AI深度融入全链路
大数据·人工智能·统好ai·数智一体化平台
央链知播2 小时前
何超稂时丽参加2026北京国际科幻与未来产业博览会
大数据·人工智能·业界资讯
@insist1232 小时前
网络工程师-核心考点:存储体系与系统可靠性计算
大数据·网络工程师·软考·软件水平考试