【问题标题】:Details: How Flink achieves exactly-once mechanism?详解:Flink 如何实现exactly-once 机制?
【发布时间】:2019-12-23 05:58:28
【问题描述】:

从之前的post看来,Flink 似乎是通过

成功预提交后,必须保证提交 最终成功

我认为“一次成功的预提交”是通过 Flink 任务管理器实现的;而“最终成功”则是由 Flink sink 实现的。

  1. Flink Sink 节点如何实现“最终成功”?
  2. 这种一次性机制是否与检查点有关?

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    Flink 的两阶段提交接收器通常通过以下方式将其操作与检查点机制耦合:

    • onSnapshot:刷新所有记录并预提交
    • onCheckpointComplete:提交待处理事务并发布数据
    • onRecovery:检查并提交任何待处理的事务

    请注意,如果外部系统超时将在 onRecovery 阶段提交的未决事务,则可能会丢失数据。

    您可以通过An Overview of End-to-End Exactly-Once Processing in Apache Flink (with Apache Kafka, too!)了解更多信息。

    【讨论】:

    猜你喜欢
    • 2019-06-23
    • 2019-12-10
    • 2021-01-16
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2021-12-11
    相关资源
    最近更新 更多