Flink是如何保证Exactly-once语义的?

Flink通过实现两阶段提交和状态保存来实现端到端的一致性语义。 

分为以下几个步骤:

·开始事务(beginTransaction)创建一个临时文件夹,来写把数据写入到这个文件夹里面

·预提交(preCommit)将内存中缓存的数据写入文件并关闭

·正式提交(commit)将之前写完的临时文件放入目标目录下。这代表着最终的数据会有一些延迟

·丢弃(abort)丢弃临时文件

若失败发生在预提交成功后,正式提交前。可以根据状态来提交预提交的数据,也可删除预提交的数据。

更多精选文章
标签:
一个创业中的苦逼程序员
笔试题


刷题


简历模板


AI算法


大数据


内推


推荐阅读:
阿里巴巴笔试面试大全
腾讯笔试面试大全
百度笔试面试大全
今日头条笔试面试大全
网易笔试面试大全
Google笔试面试大全
更多笔试面试大全
隐藏