Kafka Stream程序正在重新处理已处理的事件

时间:2017-11-22 12:44:54

标签: apache-kafka apache-kafka-streams

我向卡夫卡转发了一些活动并启动了我的卡夫卡流程序。我的程序开始处理事件并完成。过了一段时间,我停止了我的Kafka流应用程序,然后我再次开始。观察到My Kafka流程序正在处理已处理的先前事件。

根据我的理解,Kafka流在内部维护每个应用程序ID的输入主题本身的偏移量。但是这里重新处理已处理的事件。

如何验证Kafka流处理完成的偏移量? Kafka流如何持久保存这些书签?在什么基础上&从哪个Kafka偏移,Kafka流将开始阅读Kafka的事件?

如果Kafka steam抛出异常,那么它是否重新处理已处理的事件?

请澄清我的疑虑。

请帮助我站起来。

1 个答案:

答案 0 :(得分:1)

Kafka Streams内部使用KafkaConsumer,所有正在运行的实例使用application.id作为group.id形成一个使用者群组。偏移量定期(可配置)提交给Kafka群集。因此,在使用相同的application.id Kafka Streams重新启动时,应该获取最新提交的偏移并从那里继续处理。

您可以使用bin/kafka-consumer-groups.sh工具检查已提交的偏移量,以及其他任何使用者组。

相关问题