如何从java代码中删除Kafka主题的使用者组?

时间:2017-03-10 08:55:22

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

我有一个kafka主题T.

用户可以选择创建新条目A,B,C或删除它们。在创建每个条目A,B或C时;我将为kafka主题T创建一个具有相同名称的使用者组。

删除条目A,B,C;我希望删除相应的使用者组,而不会以任何方式影响主题T - 但我想从Java模块实现这一点。怎么可能?

2 个答案:

答案 0 :(得分:1)

目前,只有有限的Java API。正在讨论添加Java AdminClient(参见https://cwiki.apache.org/confluence/display/KAFKA/KIP-117%3A+Add+a+public+AdminClient+API+for+Kafka+admin+operations

对于基于Zookeeper的消费者群体(即来自v0.8的旧消费者群体),您可以查看ConsumerGroupCommand的代码 - 这是Scala代码,但您仍然可以从Java调用它。

对于基于经纪人的消费者群体(即v0.9的新消费者群体),您根本无法删除消费者群体(此刻 - 它是WIP以添加对此的支持)。但是,如果消费者组不再处于活动状态,则会自动删除这些消费者组。您可以通过代理设置offsets.retention.minutes配置此“延迟”(如果组的所有已提交的偏移都被删除,则会删除该组。)

答案 1 :(得分:-1)

我没有足够的评论点,但如果您只想删除一个消费者群体,唯一的方法是删除zookeeper条目/consumers/[group_id]。这是一个指向正确方向的链接: removing a kafka consumer group in zookeeper