gpt4 book ai didi

kafka-consumer-api - 在 setBatchListener(true) 和 enable.auto.commit true 时在 Spring Kafka 上偏移提交

转载 作者:行者123 更新时间:2023-12-04 13:18:33 26 4
gpt4 key购买 nike

有人可以帮助理解消费者线程何时会在 spring kafka 批处理监听器和自动提交设置为 true 的情况下提交偏移量吗?默认情况下,消费者线程会在处理完批处理中的所有消息后提交偏移量吗?我知道如果 autoCommit 为假,提交将基于 AckModes,但想知道 autoCommit 何时为真

  • Spring Kafka - batchListener -true
  • enable.auto.commit - true
  • MAX_POLL_RECORDS_CONFIG - 默认 (500)
  • MAX_POLL_INTERVAL_MS_CONFIG - 默认(5 分钟)

最佳答案

使用 enable.auto.commit=true,容器完全不负责提交偏移量——这完全取决于 kafka-clients 库中的算法。

来自kafka文档:

If true the consumer's offset will be periodically committed in the background.

另见 auto.commit.interval.ms

The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true.

默认情况下设置为 5 秒,因此如果您在少于该时间的时间内处理批处理,则在批处理完成时可能会或可能不会提交偏移量。客户端在下一次轮询开始时检查自上次提交以来的时间。

我更喜欢将它设置为 false,这样您就有了明确定义的行为 - 当批处理监听器正常退出时,容器将提交偏移量。

关于kafka-consumer-api - 在 setBatchListener(true) 和 enable.auto.commit true 时在 Spring Kafka 上偏移提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com