对于消费者群体,Kafka Stream偏移重置为零

时间:2016-07-20 11:52:20

标签: apache-kafka apache-kafka-streams

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

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

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

如何在不更改消费者群组ID的情况下实现此方案。

<<我使用的是Kafka 0.10版本>>

非常感谢 彩

2 个答案:

答案 0 :(得分:7)

Apache Kafka 0.10.0.1(已于8月发布,而7月份提出了原始问题)附带了一个针对Kafka Streams的新应用程序重置工具,这是一种比简单重命名更简单,更好/更清晰的解决方案{{1 }}

您可以通过脚本application.id执行该工具,该脚本还会打印使用/帮助消息。

示例:

bin/kafka-streams-application-reset.sh

那就是说,我建议阅读前面提到的Matthias J. Sax所写的Data Reprocessing with Kafka Streams: Resetting a Streams Application,以获取更多细节。该文章还解释了为什么简单地重命名# 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 (这是迄今为止的解决方法)并不是最好的主意。

答案 1 :(得分:2)

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

目前,更改应用程序ID是最佳方式。 正确清理应用程序状态有点棘手。我们 目前正在努力改进这一点 - 应该可以使用 很快。

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

干杯 彩