【问题标题】:What's the behavior if I have set the auto commit to true and如果我将自动提交设置为 true 和
【发布时间】:2021-06-25 20:45:52
【问题描述】:

我正在阅读https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/datastream/kafka/#kafka-consumers-offset-committing-behaviour-configuration

上面写着:

Checkpointing enabled:如果启用了检查点,Flink Kafka 消费者将提交存储在检查点状态中的偏移量 当检查点完成时。这确保了提交的 Kafka 代理中的偏移量与 检查点状态。用户可以选择禁用或启用偏移量 通过调用 setCommitOffsetsOnCheckpoints(boolean) 提交 消费者上的方法(默认情况下,行为为真)。注意 在这种情况下,自动定期偏移提交设置在 属性被完全忽略。

如果我以 10 秒的间隔启用检查点,我还将 have setCommitOffsetsOnCheckpoints 设置为 true,并在 Kafka 消费者属性中设置 enable.auto.commit=trueauto.commit.interval.ms=5000

那么偏移量提交的行为是什么?偏移量会每 10 秒提交 3 次吗?一次是在做检查点时来自 flink,两次来自 Kafka 消费者的自动提交?

【问题讨论】:

    标签: apache-flink


    【解决方案1】:

    enable.auto.commit:自动提交offset,这个值的配置不是最终的offset提交方式,需要考虑用户是否开启了checkpoint,会在后面的源码分析中解释

    consumer.setCommitOffsetsOnCheckpoints(true) ​ 解释:设置checkpoint后,提交offset,即oncheckpoint方式。该值默认为 true。该参数会影响offset的提交方式。下面源码会分析一下

    因此,根据您所说的报价并在互联网上进一步查看,Flink 消费者将在启用检查点时忽略 auto.commit 配置,偏移量提交行为将定义为 consumer.setCommitOffsetsOnCheckpoints 已定义(默认为true

    https://www.programmersought.com/article/84744879064/

    来自 Flink 文档

    Checkpointing disabled:如果 checkpointing 被禁用,Flink Kafka Consumer 依赖于内部使用的 Kafka 客户端的自动周期性偏移提交能力。因此,要禁用或启用偏移提交,只需在提供的 Properties 配置中将 enable.auto.commit / auto.commit.interval.ms 键设置为适当的值。

    Checkpointing enabled:如果启用了 checkpointing,则 Flink Kafka Consumer 将在 checkpoint 完成时提交存储在 checkpointed 状态中的偏移量。这确保了 Kafka 代理中已提交的偏移量与检查点状态中的偏移量一致。用户可以通过调用消费者的 setCommitOffsetsOnCheckpoints(boolean) 方法来选择禁用或启用偏移提交(默认情况下,行为为 true)。请注意,在这种情况下,属性中的自动定期偏移提交设置将被完全忽略。

    请注意,在这种情况下,属性中的自动定期偏移提交设置被完全忽略

    【讨论】:

    • 感谢@ran-lupovich 提供的有用答案。浏览flink源码后发现,如果开启了checkpoint,但是consumer.setCommitOffsetsOnCheckpoints设置为false,那么即使enable.auto.commit设置为true,offset也根本不会提交。所以,我认为这里的行为是错误的:当 consumer.setCommitOffsetsOnCheckpoints 设置为 false 时,它​​应该依靠 enable.auto.commit 来进行偏移提交。
    • @david-anderson,你能不能帮忙看看我上面添加的问题和评论,这种行为对我来说没有意义。
    • @Tom 添加了来自 Flink 文档的引用,在 Checkpointing 设置上 ` 属性中的自动定期偏移提交设置被完全忽略`
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2023-03-04
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    相关资源
    最近更新 更多