Команды для проверки и обслуживания кластера Apache Kafka. Скрипты лежат в каталоге bin установки Kafka. Вместо server1, server2, server3 укажите адреса своих брокеров.
Тестовый продюсер: сообщения с ключом
Отправляет в топик сообщения, которые вы вводите в консоли. Ключ и значение разделяются двоеточием: строка user1:hello уйдёт с ключом user1 и значением hello:
sh kafka-console-producer.sh --topic test --property "parse.key=true" --property "key.separator=:" --bootstrap-server server1:9092,server2:9092,server3:9092
Тестовый потребитель
Читает сообщения из топика и выводит вместе с ключами:
sh kafka-console-consumer.sh --topic topic_name --property print.key=true --property print.value=true --property key.separator=":" --bootstrap-server server1:9092,server2:9092,server3:9092
Чтобы прочитать топик с самого начала, добавьте --from-beginning.
Нагрузочный тест продюсера
Показывает, сколько сообщений в секунду кластер принимает и с какой задержкой. --record-size — размер сообщения в байтах, --throughput — ограничение скорости (сообщений в секунду), acks=1 — ждать подтверждения только от лидера. Число сообщений в примере очень большое, тест можно прервать по Ctrl+C:
sh kafka-producer-perf-test.sh --topic test --num-records 10000000000 --record-size 250 --throughput 1000000 --producer-props acks=1 buffer.memory=67108864 compression.type=none batch.size=8196 linger.ms=0 retries=0 bootstrap.servers=server1:9092,server2:9092,server3:9092
Тест создаёт реальную нагрузку, на рабочем кластере запускайте его осторожно.
Перевыбор лидеров
После перезапуска брокеров лидерство в партициях может скопиться на одном из них. Вернуть лидеров на предпочтительные брокеры (Kafka 2.4 и новее):
sh kafka-leader-election.sh --bootstrap-server server1:9092 --election-type preferred --all-topic-partitions
В старых версиях для этого служит скрипт kafka-preferred-replica-election.sh.
Группы потребителей и топики
Список групп потребителей и подробности по группе: на какие топики подписана, позиция чтения и отставание (LAG):
sh kafka-consumer-groups.sh --list --bootstrap-server server1:9092,server2:9092,server3:9092
sh kafka-consumer-groups.sh --bootstrap-server server1:9092,server2:9092,server3:9092 --describe --group GroupName
Список топиков и подробности по топику: партиции, лидеры, реплики:
sh kafka-topics.sh --bootstrap-server server1:9092 --list
sh kafka-topics.sh --bootstrap-server server1:9092 --describe --topic topic_name