我有一个kafka主题T.
用户可以选择创建新条目A,B,C或删除它们。在创建每个条目A,B或C时;我将为kafka主题T创建一个具有相同名称的使用者组。
删除条目A,B,C;我希望删除相应的使用者组,而不会以任何方式影响主题T - 但我想从Java模块实现这一点。怎么可能?
答案 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