список потребителей кафки в зоопарке

Я использую C ++ kafka lib для создания / потребления сообщений с kafka — все прекрасно работает.

Теперь я хочу контролировать своего потребителя, чтобы справиться с отключениями / сбоями. Я ищу вид списка подключений всех потребителей.

от кафки документация:

Consumer Id Registry

В дополнение к group_id, который является общим для всех потребителей в
группе, каждому потребителю дается временный, уникальный идентификатор_потребителя (из
Форма hostname: uuid) для целей идентификации. Идентификаторы потребителей
зарегистрирован в следующем каталоге.

/consumers/[group_id]/ids/[consumer_id] --> {"topic1": #streams, ..., "topicN": #streams} (ephemeral node)

Каждый из потребителей в группе регистрируется под своей группой и
создает znode с его consumer_id. Значение znode содержит
карта <topic, #streams>, Этот идентификатор просто используется для идентификации каждого
потребителей, которые в настоящее время активны в группе. Это
эфемерный узел, поэтому он исчезнет, ​​если процесс потребителя умрет.

Но при попытке ls /consumers — там ничего нет (мое приложение работает&работает и потребители потребляют сообщения через лог)

2

Решение

В кластере 0,9 кафка, только old-consumers(zookeeper-based offset storage) зарегистрированы в «/ consumer / [group_id] / ids / [consumer_id]», new-consumer(kafka-based offset storage) не регистрируется в пути «/ consumer / [group_id]».
(моя версия кластера — kafka 0.9.0.1)

1

Другие решения

KabkaConsumer высокого уровня librdkafka опирается на новую сбалансированную группу потребителей в Apache Kafka 0.9 и не использует ZooKeeper.

Вы можете использовать bin/kafka-consumer-groups.sh --new-consumer .. Скрипт в дистрибутиве Kafka для перечисления и описания зарегистрированных групп потребителей.
Существует также API для получения этой же информации программным способом в интерфейсе C librdkafka (rd_kafka_list_groups()) и он будет доступен в C ++ в ближайшее время.

1

По вопросам рекламы [email protected]