如果我将自动提交设置为 true 且

Tom*_*Tom 1 apache-flink

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

它说:

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

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

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

Ran*_*ich 5

\n

enable.auto.commit\xef\xbc\x9a自动偏移提交,该值的配置并不是最终的偏移提交模式,需要考虑用户是否启用了checkpoint,将在下面的源码分析中进行解读

\n
\n
\n

Consumer.setCommitOffsetsOnCheckpoints(true)\n\xe2\x80\x8b 解释:设置checkpoint后,提交offset,即oncheckpoint模式。默认情况下该值为 true。该参数会影响offset的提交方式。下面源码来分析一下

\n
\n

因此,根据您所说的引用并在互联网上进一步查找,当启用检查点时,Flink消费者将忽略 auto.commit 配置,偏移量提交行为将由\n定义consumer.setCommitOffsetsOnCheckpointstrue默认情况下)

\n

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

\n

来自 Flink 文档

\n
\n

禁用检查点:如果禁用检查点,Flink Kafka Consumer 依赖于内部使用的 Kafka 客户端的自动定期偏移提交功能。因此,要禁用或启用偏移量提交,只需在提供的 Properties 配置中将enable.auto.commit / auto.commit.interval.ms 键设置为适当的值即可。

\n
\n
\n

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

\n
\n

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

\n