【问题标题】:Kafka Streams Application consumer offset getting reset to Earliest on restartKafka Streams 应用程序消费者偏移量在重新启动时重置为最早
【发布时间】:2019-10-16 03:43:25
【问题描述】:

我们有一个遇到奇怪行为的 Kafka Streams 应用程序。随机地,当作业被终止并重新启动时,消费者组将其偏移量重置为最早,并且所有旧记录都被重新处理。

有什么具体的事情需要做而我们错过了吗?

"buffered.records.per.partition": 512000, 
"cache.max.bytes.buffering": 134217728, 
"commit.interval.ms": 30000, 
"retries": 2147483647, 
"acks": "all", 
"processing.guarantee": "exactly_once", 
"compression.type": "snappy", 
"auto.offset.reset": "latest"

【问题讨论】:

  • 你能显示配置属性吗
  • 重启之间消费者组的值是否相同?
  • @Deadpool 下面是我们的配置:"buffered.records.per.partition": 512000, "cache.max.bytes.buffering": 134217728, "commit.interval.ms": 30000, "retries": 2147483647, "acks": "all", "processing.guarantee": "exactly_once", "compression.type": "snappy", "auto.offset.reset": "latest"
  • @maitreyak 是的,消费组没有改变。
  • 您可以通过bin/kafka-consumer-groups.sh 工具检查偏移量吗?如果有提交失败的 WARN 日志,还要检查日志文件。

标签: apache-kafka kafka-consumer-api apache-kafka-streams


【解决方案1】:

嗯,你已经设置了"auto.offset.reset": "latest",很明显这个属性没有被应用。

为了保证至少一次处理语义并关闭自动提交,Kafka Streams 将 enable.auto.commit 消费者配置值覆盖为 false。只有当 Kafka Streams 库或用户决定提交当前处理状态

时,消费者才会通过 commitSync 调用显式提交

-docs

因此,您似乎没有对任何流项目执行终端操作,以便它会进行同步提交。

【讨论】:

    猜你喜欢
    • 2017-12-13
    • 2018-02-03
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多