【问题标题】:How to delete a consumer group of a Kafka Topic from java code?如何从 Java 代码中删除 Kafka 主题的消费者组?
【发布时间】:2017-07-31 13:05:59
【问题描述】:

我有一个kafka主题T。

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

删除条目 A、B、C 时;我想在不以任何方式影响主题 T 的情况下删除相应的消费者组 - 但我想从 Java 模块中实现这一点。这怎么可能?

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 如果您使用的是使用 Kafka 内置的组协调协议的新消费者怎么办?
  • 仅适用于基于 ZK 的消费者群体 -- 不适用于 0.9 中引入的新消费者。
【解决方案2】:

目前,对此只有有限的 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 配置此“延迟”(如果删除了所有已提交的偏移量,则删除该组)。

【讨论】:

猜你喜欢
  • 2020-12-21
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 2018-07-27
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多