繁体   English   中英

清除卡夫卡消费者群体的成员

[英]Clear a Kafka consumer group with stuck members

我遇到的问题是,来自一个消费者组的许多Kafka客户端没有正确关闭,因此Kafka集群认为它们仍然连接在一起。 因此,我无法使用新版本的客户端连接到使用者组。 它将陷入重新平衡步骤。

根据文档,它们应在session.timeout.ms或最大group.max.session.timeout.ms 之后删除 起初我尝试将session.timeout.ms设置为30000毫秒(30秒),但它没有在Kafka的启动时列出。 group.max.session.timeout.ms在该时间点设置为300000毫秒(5分钟)。 消费者在30秒后没有被删除。

之后我尝试将group.max.session.timeout.ms减少到30000毫秒(30秒)并重新启动Kafka。 然而,所有客户再次留在消费者群体中。

现在,大约2个小时后,客户仍然连接到消费者群体。

我尝试删除使用者组

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
    --delete --group GroupName

这给了我:

* Group 'GroupName' could not be deleted due to: NON_EMPTY_GROUP

不幸的是,似乎没有--force标志。

接下来,我尝试使用以下命令列出使用者组的所有成员:

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
    --members --group GroupName --describe

这给了我40-50个消费者组成员(所有这些成员必须处于非活动状态,因为唯一的活跃消费者被停止)。

有没有办法让我能让Kafka清除这个群体中的所有消费者或强迫它删除整个消费群体?

  • 由于以下原因,无法删除组'GroupName':NON_EMPTY_GROUP

意味着使用者组仍然主动连接到服务器您必须先删除该进程,然后才能删除该使用者组。 这适合我。

ps -ef | grep GroupName | grep -v grep | awk '{print $2}' | xargs kill
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--delete --group GroupName

我不得不删除zookeeper和代理日志。

  1. 停止Zookeeper
  2. 停止经纪人
  3. 删除Zookeeper和Kafka的日志(这些都在config/zookeeper.properties config/server.properties
  4. 启动Zookeeper
  5. 启动经纪人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM