如何更改Kafka拓扑的消费者偏移量?

时间:2017-12-15 07:33:11

标签: java apache-kafka apache-kafka-streams

如今,我正在开发一个使用Kafka Streams处理消息的项目。我们的消息由两个标识符组成,其中一个用于用户的标识符,第二个用于用户所属的消息列表的标识符。

该应用程序的故事是客户希望通过我的应用程序将推送消息发送到他们的用户列表。因此,客户端在向用户发送推送消息之前以及之后开始发送之前,从外部源加载用户列表。但客户也希望随时停止正在进行的发送。

此时我的问题出现了。我想停止发送推送消息而不通过其流api消耗来自kafka的所有消息。我用谷歌搜索流的源的偏移量作为最新,但找不到合适的方法来完成它。

我怎样才能完成它? 谢谢。

1 个答案:

答案 0 :(得分:1)

Kafka Streams不支持此功能。如果您确实需要这样做,可以停止Kafka Streams并使用bin/kafka-consumer-groups.sh手动搜索到Kafka Streams应用程序(注意:application.id == group.id)。之后,您可以重新启动Kafka Streams。

顺便说一句:在即将发布的1.1版本中,bin/kafka-streams-application-reset.sh也允许操纵偏移量。我希望我们还设法创建内部使用的类StreamsResetter公共API - 这将允许您在我们的应用程序中以编程方式执行此操作,而无需回退到命令行。