Перейти к основному содержимому

Список потребителей Kafka

· 3 мин. чтения

1. Обзор

В этом кратком руководстве мы узнаем, как составить список групп потребителей Kafka, а также просмотреть их детали.

2. Предпосылки

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

Для простоты предположим, что у нас есть кластер с одним узлом, который прослушивает порт 9092, а экземпляр Zookeeper прослушивает порт 2181 на локальном хосте.

Кроме того, обратите внимание, что мы запускаем все примеры команд из каталога установки Kafka.

3. Добавление тем и потребителей

Прежде чем перечислять потребителей в конкретном кластере Kafka, давайте сначала добавим несколько тем , используя сценарий оболочки kafka-topics.sh :

$ ./bin/kafka-topics.sh --create --topic users.registrations --replication-factor 1 \ 
--partitions 2 --zookeeper localhost:2181
$ ./bin/kafka-topics.sh --create --topic users.verfications --replication-factor 1 \
--partitions 2 --zookeeper localhost:2181

Теперь нам также нужно добавить несколько групп потребителей . Самый простой способ — использовать консольный потребитель, входящий в состав дистрибутивов Kafka :

$ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic users.registrations --group new-user
$ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic users.registrations --group new-user

Здесь мы использовали сценарий оболочки kafka-console-consumer.sh , чтобы добавить двух потребителей, слушающих одну и ту же тему. Эти потребители находятся в одной группе, поэтому сообщения из тематических разделов будут распределяться между членами группы . Таким образом, мы можем реализовать шаблон конкурирующих потребителей в Kafka.

Возьмем и из другой темы:

$ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic users.verifications

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

Мы увидим эту новую группу в следующем разделе, где узнаем, как составить список потребителей и групп потребителей в кластере Kafka.

4. Список потребителей

Чтобы составить список потребителей в кластере Kafka, мы можем использовать сценарий оболочки kafka-consumer-groups.sh . Опция –list выведет список всех групп потребителей :

$ ./bin/kafka-consumer-groups.sh --list --bootstrap-server localhost:9092
new-user
console-consumer-40123

В дополнение к параметру –list мы передаем параметр –bootstrap-server , чтобы указать адрес кластера Kafka. У нас есть три отдельных потребителя в двух группах, поэтому результат содержит только две группы.

Чтобы увидеть членов первой группы , мы можем использовать параметры «–group <name> –describe –members» :

$ ./bin/kafka-consumer-groups.sh --describe --group new-user --members --bootstrap-server localhost:9092
GROUP CONSUMER-ID HOST CLIENT-ID #PARTITIONS
new-user consumer-new-user-1-b90... /127.0.0.1 consumer-new-user-1 1
new-user consumer-new-user-1-af8... /127.0.0.1 consumer-new-user-1 1

Здесь мы видим, что в нашей группе новых пользователей есть два отдельных потребителя, каждый из которых потребляет данные из одного раздела.

Если мы опустим параметр –members , в нем будут перечислены потребители в группе, номер раздела, который каждый слушает, и их смещения:

$ ./bin/kafka-consumer-groups.sh --describe --group new-user --bootstrap-server localhost:9092
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG
new-user users.registrations 1 3 3 0
new-user users.registrations 0 5 5 0

Еще одна вещь, которую следует отметить, это то, что для этой команды требуется адрес кластера или сервера начальной загрузки. Если мы опустим информацию о подключении к кластеру, сценарий оболочки выдаст ошибку :

$ ./bin/kafka-consumer-groups.sh --list
Missing required argument "[bootstrap-server]"
// truncated

5. Вывод

В этом коротком руководстве мы сначала добавили несколько тем Kafka и групп потребителей. Затем мы научились составлять список групп потребителей и просматривать сведения о каждой группе.