Список потребителей Кафки

Мне нужно выяснить способ спросить Кафку о списке тем. Я знаю, что могу сделать это, используя kafka-topics.sh script, включенный в каталог bin\. Как только у меня есть этот список, мне нужно, чтобы все потребители по теме. Я не смог найти script в этом каталоге, а также класс в библиотеке kafka-consumer-api, который позволяет мне это делать.

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

Есть ли способ достичь этого? Или мне нужно реализовать эту функциональность у каждого из моих потребителей?

Ответ 1

Kafka хранит всю информацию в zookeeper. Вы можете увидеть всю информацию, связанную с темой, в разделе брокеров- > тем. Если вы хотите, чтобы все темы были программными, вы можете сделать это с помощью Zookeeper API.

Подробно объясняется ниже ссылки Tutorialspoint, Руководство для программиста Zookeeper

Ответ 2

Использовать kafka-consumer-groups.sh

Например

bin/kafka-consumer-groups.sh  --list --bootstrap-server localhost:9092

bin/kafka-consumer-groups.sh --describe --group mygroup --bootstrap-server localhost:9092

Ответ 3

вы можете использовать это для 0.9.0.0. версия kafka

./kafka-consumer-groups.sh --list --zookeeper hostname:potnumber

чтобы просмотреть созданные вами группы. Это отобразит все имена групп потребителей.

 ./kafka-consumer-groups.sh --describe --zookeeper hostname:potnumber  --describe  --group consumer_group_name

Для просмотра сведений

GROUP, TOPIC, PARTITION, CURRENT OFFSET, LOG END OFFSET, LAG, OWNER

Ответ 4

Потребители высокого уровня зарегистрированы в Zookeeper, поэтому вы можете получить список из ZK, аналогично тому, как kafka-topics.sh извлекает список тем. Я не думаю, что есть способ собрать всех потребителей; любое приложение, отправляющее несколько запросов на потребление, на самом деле является "потребителем", и вы не можете сказать, выполнены ли они уже.

На стороне потребителя существует метрика JMX для контроля задержки. Также есть Нора для мониторинга лагов.

Ответ 5

Я понимаю, что этому вопросу уже почти 4 года. С тех пор многое изменилось в Кафке. Это упомянуто выше, но только мелким шрифтом, поэтому я пишу это для пользователей, которые сталкиваются с этим вопросом так же поздно, как и я.

  1. Смещения по умолчанию теперь хранятся в теме Kafka (больше не в Zookeeper), см. Смещения, хранящиеся в Zookeeper или Kafka?
  2. Есть утилита kafka-consumer-groups, которая возвращает всю информацию, включая смещение темы и раздела, о потребителе и даже отставание (Примечание: когда вы спрашиваете о смещении темы, я предполагаю, что вы имеете в виду смещения разделы темы). В моем тестовом кластере Kafka 2.0:
kafka-consumer-groups --bootstrap-server kafka:9092 --describe
    --group console-consumer-69763 Consumer group 'console-consumer-69763' has no active members.

TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
pytest          0          5               6               1               -               -               -
''