我正在使用Kafka2.9.2-0.8.1.1和zookeeper 3.4.6。
有没有一个实用程序可以自动从zookeeper中删除用户组?或者我可以删除zookeeper中/consumers/[group\u id]下的所有内容吗?如果是后者,我还有什么遗漏吗&这可以用一个实时系统来完成吗?
更新:从kafka 2.3.0版开始,有一个新的实用程序: > bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --delete --group my-group
相关文件:http://kafka.apache.org/documentation/#basic_ops_consumer_lag
详见下文
4条答案
按热度按时间qq24tv8q1#
从v0.9.0开始,kafka在
/bin
其中之一就是kafka-consumer-groups.sh
工具。这将删除消费者组。./kafka-consumer-groups.sh --zookeeper <zookeeper_url> --delete --group <group-name>
qybjjes12#
目前,据我所知,删除kafka消费群的唯一方法是手动删除zookeeper路径
/consumers/[group_id]
.如果您只想删除一个使用者组,则不必担心手动删除zookeeper路径,但是如果您这样做是为了回放偏移量,下面的内容将很有帮助。
首先,在删除zookeeper路径之前,应该停止属于该使用者组的所有使用者。如果不这样做,这些使用者将不会使用新生成的消息,并将很快关闭到zookeeper集群的连接。
重新启动消费者时,如果希望消费者从头开始,请给出
auto.offset.reset
属性到smallest
(或earliest
在Kafka的新版本中)。属性的默认值为largest
(或latest
在新的kafka版本中),它使重新启动的用户在最大偏移量之后读取,而最大偏移量又只消耗新生成的消息。有关属性的更多信息,请参阅kafka文档中的consumer config。仅供参考,有一个问题,我如何才能倒带消费者的抵消?在Kafka常见问题,但它给我没有太多的帮助。
lyr7nygr3#
对于新使用者(使用kafka主题来管理偏移,而不是zookeeper),不能使用kafka的内置工具删除组信息。
下面是一个尝试使用
kafka-consumer-groups.sh
脚本:以下是这一回应的重要部分:
请注意,无需删除新使用者的组元数据,因为当该组的最后一个提交的偏移量过期时,该组将被删除。
从监控的Angular 来看,这有点烦人(尤其是通过burrow之类的方法跟踪偏移量时),因为这意味着如果在代码中更改使用者组名称,您将一直看到旧组在偏移量上落后,直到这些偏移量过期。
假设您可以手动为该主题编写一个墓碑(这是在偏移过期期间发生的事情),但我还没有找到任何工具可以简化这一过程。
hgqdbh6s4#
您可以通过cli从kafka中删除组