当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/488042.html

相关文章:

  • 【vulhub】nginx解析漏洞(nginx_parsing_vulnerability)
  • 网络协议之邮件协议(SMTP、POP3与IMAP)
  • python学习笔记(3)运算符
  • _FYAW智能显示控制仪表的简单使用_串口通信
  • 激光雷达定位初始化的另外一个方案 通过键盘按键移动当前位姿 (附python代码)
  • 从0-1逐步搭建一个前端脚手架工具并发布到npm
  • 河道水位流量一体化自动监测系统:航运安全的护航使者
  • 维护在线重做日志
  • ASCB1系列APP操控末端回路智能微断 物联网断路器 远程控制开关 学校、工厂、农场、商业大楼等可用
  • Python入门(10)--面向对象进阶
  • Makefile 之 自动化变量
  • 鸿蒙开发:ForEach中为什么键值生成函数很重要
  • 沃丰科技智能外呼机器人:超越人工,重塑外呼体验
  • 百度飞浆:paddle 线性回归模型
  • 【JavaSE】【网络编程】UDP数据报套接字编程
  • 45.坑王驾到第九期:Mac安装typescript后tsc命令无效的问题
  • 20241120-Milvus向量数据库快速体验
  • 【Golang】——Gin 框架中间件详解:从基础到实战
  • 量子计算来袭:如何保护未来的数字世界
  • VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源
  • 光伏电站仿真系统的作用
  • Golang文件操作
  • 爬虫开发工具与环境搭建——使用Postman和浏览器开发者工具
  • React(二)
  • 同步原语(Synchronization Primitives)
  • SpringBoot服务多环境配置
  • STM32单片机CAN总线汽车线路通断检测-分享
  • 【环境搭建】使用IDEA远程调试Docker中的Java Web
  • 贴代码框架PasteForm特性介绍之select,selects,lselect和reload
  • STM32G4的数模转换器(DAC)的应用