删除zookeeper中的kafka使用者组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除zookeeper中的kafka使用者组相关的知识,希望对你有一定的参考价值。
我正在使用kafka_2.9.2-0.8.1.1和zookeeper 3.4.6。
是否有可以自动从zookeeper中删除使用者组的实用程序?或者我可以删除zookeeper中/ consumers / [group_id]下的所有内容吗?如果是后者,还有什么我错过了吗?这可以用现场系统完成吗?
目前,据我所知,删除Kafka使用者组的唯一方法是手动删除Zookeeper路径/consumers/[group_id]
。
如果您只想删除一个使用者组,则无需担心手动删除Zookeeper路径,但如果您这样做是为了倒带偏移,下面的内容将会有所帮助。
首先,在删除Zookeeper路径之前,应该停止所有使用者属于使用者组。如果不这样做,那些消费者将不会消耗新生成的消息,并且很快将关闭与Zookeeper集群的连接。
当您重新启动使用者时,如果您希望消费者从头开始,请将auto.offset.reset
属性提供给smallest
(或在新的Kafka版本中使用earliest
)。该属性的默认值是largest
(或新的Kafka版本中的latest
),它使重新启动的消费者在最大的偏移量之后读取,而最大的偏移量又消耗了新生成的消息。有关该属性的更多信息,请参阅Kafka文档中的Consumer Config。
仅供参考,卡夫卡常见问题中有一个问题How can I rewind the offset in the consumer?,但它给了我很多帮助。
从v0.9.0开始,Kafka在/bin
附带了一套工具,其中一个是kafka-consumer-groups.sh
工具。这将删除一个消费者组。 ./kafka-consumer-groups.sh --zookeeper <zookeeper_url> --delete --group <group-name>
对于新的消费者(使用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.
以下是该响应的重要部分:
请注意,不需要删除新使用者的组元数据,因为当该组的最后一个提交的偏移量到期时,将删除该组。
从监控角度来看这有点令人讨厌(特别是在通过像burrow这样的东西跟踪偏移时),因为这意味着如果你在代码中更改了消费者群体名称,你将会看到旧群体在他们的偏移量上落后,直到这些抵消到期为止。
假设您可以手动为该主题编写一个墓碑(这是在offset expiration期间发生的事情),但我还没有找到任何使这个变得容易的工具。
您可以通过CLI从kafka中删除组
kafka-consumer-groups --bootstrap-server localhost:9092 --delete --group group_name
我遇到了一个消费者群体的问题,并希望删除该群组。以下方法对我有用:
- 在Kafka
offsets.retention.minutes=1
文件中设置server.config
并重新启动Kafka服务器 - 关闭/退出使用使用者组的进程
- 将此主题/分区的偏移量设置为0(类似于
kafka-consumer-groups.sh --bootstrap-server yourserver:9092 --group yourgroup --reset-offsets --to-latest --all-topics --execute
不要忘记设置参数并重新启动Kafka。
以上是关于删除zookeeper中的kafka使用者组的主要内容,如果未能解决你的问题,请参考以下文章
Kafka放弃Zookeeper后如何持存储主题与消费组呢?