Очистить группу потребителей Kafka с застрявшими членами - PullRequest
0 голосов
/ 26 сентября 2018

У меня проблема в том, что многие мои клиенты 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 членов группы потребителей (все они должны быть неактивны, потому что остановлен единственный активный потребитель).

Есть ли способ, как заставить Кафку очистить всех потребителей из этой группы или принудительно удалить всю группу потребителей?

1 Ответ

0 голосов
/ 16 января 2019

С

  • Не удалось удалить группу «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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...