Удаление группы потребителей kafka в zookeeper

Я использую kafka_2.9.2-0.8.1.1 с zookeeper 3.4.6.

Есть ли утилита, которая может автоматически удалять группу потребителей из zookeeper? Или я могу просто удалить все в /consumer/[group_id] в zookeeper? Если последнее, есть ли что-то еще, что я пропускаю & это можно сделать с помощью живой системы?

Обновить: Начиная с версии 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

Смотрите ниже для дальнейшего обсуждения

Ответ 1

В настоящее время, насколько мне известно, единственный способ удалить группу потребителей Kafka - это вручную удалить путь Zookeeper /consumers/[group_id].

Если вы просто хотите удалить группу потребителей, вам не нужно беспокоиться об удалении пути Zookeeper вручную, но если вы сделаете это для перемотки смещений, вам поможет следующее.

Прежде всего, вы должны остановить всех потребителей, принадлежащих к группе потребителей, прежде чем удалять путь Zookeeper. Если вы этого не сделаете, эти потребители не будут использовать вновь созданные сообщения и вскоре закроют соединения с кластером Zookeeper.

При перезапуске потребителей, если вы хотите, чтобы потребители запускались с самого начала, auto.offset.reset свойству auto.offset.reset smallest (или earliest в новых выпусках Kafka). Значение по умолчанию для этого свойства largest (или latest в новых выпусках Kafka), которое заставляет перезапускаемых потребителей читать после наибольшего смещения, которое, в свою очередь, потребляет только недавно созданные сообщения. Для получения дополнительной информации о собственности см. Consumer Config в документации Kafka.

К вашему сведению, возникает вопрос Как я могу перемотать смещение у потребителя? в Kafka FAQ, но это мне не сильно помогло.

Ответ 2

Начиная с v0.9.0, Kafka поставляется с набором инструментов в /bin, одним из которых является инструмент kafka-consumer-groups.sh. Это приведет к удалению группы пользователей. ./kafka-consumer-groups.sh --zookeeper <zookeeper_url> --delete --group <group-name>

Ответ 3

Для новых потребителей (которые используют тему kafka для управления смещениями вместо zookeeper) вы не можете удалить информацию о группе с помощью встроенных инструментов kafka.

Вот пример попытки удалить информацию о группе для нового пользователя стиля с помощью kafka-consumer-groups.sh script:

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 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), потому что это означает, что если вы измените имена групп потребителей в своем коде, вы увидите, что старые группы отстают от своих смещений до истечения этих смещений.

Гипотетически вы могли бы написать надгробный камень в эту тему вручную (что происходит во время истечения смещения), но я не нашел никаких инструментов, которые сделайте это легко.

Ответ 4

Вы можете удалить группу из кафки с помощью CLI

kafka-consumer-groups --bootstrap-server localhost:9092 --delete --group group_name

Ответ 5

У меня возникла проблема с группой потребителей, и я хотел удалить группу. У меня сработал следующий подход:

  • Установите offsets.retention.minutes=1 в файле Kafka server.config и перезапустите сервер Kafka.
  • Завершение работы/выход из процессов, которые используют группу потребителей
  • Установите смещения этой темы/разделов на 0 (что-то вроде kafka-consumer-groups.sh --bootstrap-server yourserver:9092 --group yourgroup --reset-offsets --to-latest --all-topics --execute

Не забудьте снова установить параметры и перезапустить Kafka.