Список потребителей Кафки
Мне нужно выяснить способ спросить Кафку о списке тем. Я знаю, что могу сделать это, используя 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 года. С тех пор многое изменилось в Кафке. Это упомянуто выше, но только мелким шрифтом, поэтому я пишу это для пользователей, которые сталкиваются с этим вопросом так же поздно, как и я.
- Смещения по умолчанию теперь хранятся в теме Kafka (больше не в Zookeeper), см. Смещения, хранящиеся в Zookeeper или Kafka?
- Есть утилита 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 - - -
''