删除zookeeper中的kafka使用者组

Foo*_*o L 18 apache-kafka apache-zookeeper

我正在使用kafka_2.9.2-0.8.1.1和zookeeper 3.4.6.

是否有可以从zookeeper中自动删除使用者组的实用程序?或者我可以删除zookeeper中/ consumers/[group_id]下的所有内容吗?如果是后者,还有什么我错过了吗?这可以用现场系统完成吗?

eod*_*och 30

从v0.9.0开始,Kafka附带了一套工具,其中/bin一个kafka-consumer-groups.sh工具就是工具.这将删除一个消费者组../kafka-consumer-groups.sh --zookeeper <zookeeper_url> --delete --group <group-name>

  • @ foo-l我知道0.8不存在.由于kafka更新,我认为这将有助于目前正在搜索该问题的人. (3认同)

tur*_*nvh 24

对于新的消费者(使用kafka主题来管理偏移而不是zookeeper),您无法使用kafka的内置工具删除组信息.

以下是尝试使用kafka-consumer-groups.sh脚本删除新样式使用者的组信息的示例:

bin/kafka-consumer-groups.sh --bootstrap-server "kafka:9092" --delete --group "indexer" --topic "cleaned-logs"
Option '[delete]' is only valid with '[zookeeper]'. Note that there's no need to delete group metadata for the new consumer as the group is deleted when the last committed offset for that group expires.
Run Code Online (Sandbox Code Playgroud)

以下是该响应的重要部分:

请注意,不需要删除新使用者的组元数据,因为当该组的最后一个提交的偏移量到期时,将删除该组.

从监控角度来看这有点令人讨厌(特别是在通过类似洞穴的方式跟踪偏移时),因为这意味着如果您更改代码中的消费者群组名称,您将会看到旧群组落后于其偏移,直到这些偏移到期为止.

假设您可以手动为该主题编写一个墓碑(这是在偏移到期期间发生的事情),但我还没有找到任何使这个变得容易的工具.


Hee*_*jin 17

目前,据我所知,删除Kafka使用者组的唯一方法是手动删除Zookeeper路径/consumers/[group_id].

如果您只想删除一个使用者组,则无需担心手动删除Zookeeper路径,但如果您这样做是为了倒带偏移,下面的内容将会有所帮助.

首先,在删除Zookeeper路径之前,应该停止所有使用者属于使用者组.如果不这样做,那些消费者将不会消耗新生成的消息,并且很快将关闭与Zookeeper集群的连接.

当您重新启动使用者时,如果您希望消费者从头开始,请将auto.offset.reset属性提供给smallest(或earliest在新的Kafka版本中).该属性的默认值是largest(或latest在新的Kafka版本中),这使得重新启动的使用者在最大的偏移量之后读取,而最大的偏移量又消耗了新生成的消息.有关该属性的更多信息,请参阅Kafka文档中的Consumer Config.

仅供参考,有一个问题我如何在消费者中回放抵消?在卡夫卡常见问题解答,但它给了我不多的帮助.

  • 只是为了帮助任何搜索有关如何在zookeeper中删除消费者路径的命令的人。首先连接到zookeeper`./zookeeper-shell.sh localhost:2181`,然后使用`get / consumers / &lt;group-id&gt;`检查节点(可选),最后使用`rmr / consumers删除该组。 / &lt;group-id&gt;`。 (2认同)

小智 11

you can delete group from kafka by CLI

kafka-consumer-groups --bootstrap-server localhost:9092 --delete --group group_name
Run Code Online (Sandbox Code Playgroud)