Перейти к содержанию

Консольный продюсер и консьюмер

Отправка сообщения в теме Kafka с помощью командной строки

Для создания темы Kafka необходимо указать обязательные параметры:

  • укажите имя хоста и порт Kafka, например, localhost:9092;

  • если Kafka v2.5+, используйте опцию --bootstrap-server;

  • если Kafka более старой версии, используйте опцию --broker-list;

  • укажите обязательные параметры: имя темы;

  • используйте в командной строке команду kafka-console-producer.sh, как показано ниже:

Далее рассмотрим пример по созданию сообщения в консоли.

Убедитесь, что тема first_topic уже создана с 3 разделами и коэффициентом репликации 1:

kafka-topics.sh --bootstrap-server localhost:9092 --topic first_topic --create --partitions 3 --replication-factor 1

Создайте тему (топик):

Kafka версии 2.5 и выше:

kafka-console-producer.sh --bootstrap-server localhost:9092 --topic first_topic

Kafka версии 2.4 или ниже:

kafka-console-producer.sh --broker-list localhost:9092 --topic first_topic

Чтобы выйти из консольного продюсера Kafka, воспользуйтесь комбинацией клавиш Ctrl+C.

Вывод команды

>

После открытия продюсера вы должны увидеть символ >. После этого любая строка текста, которую вы напишете, будет отправлена в тему Kafka (при нажатии Enter).

$ kafka-console-producer --bootstrap-server localhost:9092 --topic first_topic
>Hello World
>My name is Conduktor
>I love Kafka
>^C (<- Ctrl + C используется для выхода из продюсера)

Получение сообщения в топике Kafka с помощью командной строки

Для создания темы Kafka необходимо указать обязательные параметры:

  • найдите имя хоста и порт Kafka, например, localhost:9092;

  • укажите обязательные параметры: имя темы (топика);

  • если вам нужно читать исторические данные, используйте опцию --from-beginning;

  • в противном случае вы будете читать только последующие данные;

  • используйте команду kafka-console-consumer.sh

Важная рекомендация: НЕ используйте опцию `--zookeeper`.

Начиная с Kafka v0.10, потребитель использует строки подключения Kafka, а не Zookeeper. Это связано с тем, как хранятся смещения потребителей. Любые руководства, в которых используется опция --zookeeper, следует считать устаревшими.

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

Получение только последующих сообщений темы Kafka

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic first_topic

Получение всех исторических и последующих сообщений в теме Kafka

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic first_topic --from-beginning

Чтобы выйти из консольного продюсера Kafka, воспользуйтесь комбинацией клавиш Ctrl+C.

Вывод команды

Hello World
My name is Conduktor
I love Kafka
^CProcessed a total of 3 messages (<-- при нажатии Ctrl+C для выхода)

Консольный потребитель Kafka будет оставаться открытым до тех пор, пока вы не выйдете из него, и продолжит выводить сообщения на экран. Предполагается, что все поступающие сообщения могут быть десериализованы в виде текста (String).

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

Если вы не видите никакого вывода, но знаете, что в теме Kafka есть данные, не забудьте использовать опцию --from-beginning.

Важное замечание по порядку сообщений

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