apache-flink - 如果我将自动提交设置为 true 和
问题描述
它说:
Checkpointing enabled:如果启用了 checkpointing,则 Flink Kafka Consumer 将在 checkpoint 完成时提交存储在 checkpointed 状态中的偏移量。这确保了 Kafka 代理中已提交的偏移量与检查点状态中的偏移量一致。用户可以通过调用消费者的 setCommitOffsetsOnCheckpoints(boolean) 方法来选择禁用或启用偏移提交(默认情况下,行为为 true)。请注意,在这种情况下,属性中的自动定期偏移提交设置将被完全忽略。
如果我以 10 秒的间隔启用检查点,我have setCommitOffsetsOnCheckpoints
也设置为 true,并 enable.auto.commit=true
在 auto.commit.interval.ms=5000
Kafka 消费者属性中设置 and 。
那么偏移量提交会有什么表现呢?偏移量会每 10 秒提交 3 次吗?一次是在做检查点时来自 flink,两次来自 Kafka 消费者的自动提交?
解决方案
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)。请注意,在这种情况下,属性中的自动定期偏移提交设置将被完全忽略。
请注意,在这种情况下,属性中的自动定期偏移提交设置被完全忽略
推荐阅读
- javascript - 反应克隆/创建元素
- qt - 如何制作带有外边框的圆形QToolButton?
- javascript - Rails AJAX 请求控制器方法,然后调用 javascript 函数
- javascript - 在 div 中加载外部 html 页面对我不起作用
- java - 从 Java 通过 SSH 传递的命令在 Windows 中被削减了 900 个字符
- php - 由于 PHP 中的分号省略而显示 HTTP 500 错误是否正常?
- tensorflow - tensorflow中具有张量乘法的向量的matmul函数
- java - IntelliJ Build 不执行 sbt 'compile' 依赖项
- python - 我的函数在输出中不断产生单词“none”
- mysql - 如果我在使用 MYSQL 设计这个数据库时犯了任何错误,请告诉我