开发者社区> 问答> 正文

Flink 是怎么保证Exactly-once语义的呢?

Flink 是怎么保证Exactly-once语义的呢?

展开
收起
游客5ixw6pdymb5xs 2021-12-08 13:06:09 476 0
1 条回答
写回答
取消 提交回答
  • Flink通过实现两阶段提交和状态保存来实现端到端的一致性语义。 分为以下几个步骤:

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

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

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

    丢弃(abort)丢弃临时文件

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

    2021-12-08 13:08:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载