【问题标题】:Kafka Stream offset reset to zero for consumer group消费者组的 Kafka 流偏移量重置为零
【发布时间】:2016-07-20 11:52:20
【问题描述】:

我编写了 Kafka Streaming 应用程序,它只根据某些条件过滤行并将其加载到 MongoDB。

流式处理工作正常,但由于我的代码中存在一些缺陷,我想再次重新处理整个数据。

一种方法是杀死流媒体应用,更改消费者组 ID,从 mongo 中删除数据并重新运行应用。

如何在不更改消费者组 ID 的情况下实现此场景。

>

非常感谢 帕里

【问题讨论】:

    标签: apache-kafka apache-kafka-streams


    【解决方案1】:

    Apache Kafka 0.10.0.1(于 8 月发布,而最初的问题是在 7 月提出的)附带一个新的 Kafka Streams 应用程序重置工具,与简单地重命名 application.id 相比,这是一个更简单、更好/更清洁的解决方案.

    您可以通过脚本bin/kafka-streams-application-reset.sh 执行该工具,该脚本还将打印使用/帮助消息。

    例子:

    # Run this only after ALL application instances were stopped!
    $ bin/kafka-streams-application-reset --application-id my-streams-app \
                                          --input-topics my-input-topic \
                                          --intermediate-topics rekeyed-topic \
                                          --bootstrap-servers brokerHost:9092 \
                                          --zookeeper zookeeperHost:2181
    

    也就是说,我建议阅读前面提到的 Matthias J. Sax 所写的Data Reprocessing with Kafka Streams: Resetting a Streams Application,以了解更多详细信息。那篇文章还解释了为什么简单地重命名 application.id(这是迄今为止的解决方法)不是最好的主意。

    【讨论】:

    • -KSTREAM-KEY-SELECT-0000000179-repartition 这样的主题算不算中间主题?
    • 我猜根据docs.confluent.io/current/streams/…,这是一个内部话题。
    • 这将是一个内部主题,而不是一个中间主题。
    【解决方案2】:

    收到来自 Matthias J. Sax matthias@confluent.io 的更新 -

    目前,更改应用程序 ID 是最好的方法。 正确清理应用程序状态有点棘手。我们 目前正在为此进行改进-应该可用 很快。

    https://issues.apache.org/jira/browse/KAFKA-3185

    干杯 帕里

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 2017-07-22
      • 2018-10-06
      • 2018-05-03
      • 2017-12-13
      相关资源
      最近更新 更多