В прошлый раз мы говорили про способы работы с потребителями Apache Kafka. Сегодня поговорим про способы работы с Kafka-продюсерами в распределенной среде. Читайте далее про особенности и способы работы с Kafka-потребителями в распределенной среде.
Какие существуют способы работы с продюсером в Kafka
Продюсер Kafka (Kafka producer) — это брокер (или группа брокеров), который отвечает за производство и отправку сообщений Big Data остальным брокерам-получателям (broker consumer) в распределенном Kafka-кластере. В Kafka существует 2 наиболее популярных метода работы с потребителем [1]:
- добавление продюсера в исходный код Java-приложения;
- из командной строки операционной системы.
Каждый из этих методов мы подробнее рассмотрим на практических примерах далее.
Способы создания продюсеров в брокере Kafka: несколько практических примеров
Для того, чтобы начать добавление продюсера в исходный код приложения, необходимо задать конфигурацию для подключения и работы с помощью Java-коллекции свойств Properties
[1]:
//коллекция свойств продюсера private Properties kafkaProps = new Properties(); //заполнение коллекции kafkaProps.put("bootstrap.servers", "broker1:9092,broker2:9092"); //сериализатор ключей kafkaProps.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); //сериализатор значений kafkaProps.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
За создание продюсера в Kafka отвечает класс KafkaProducer
, в конструктор которого передается объект коллекции свойств Properties
, а затем идет генерация сообщений и отправление их в топик с помощью метода send()
[1]:
//передаем объект Properties в конструктор класса продюсера producer = new KafkaProducer(kafkaProps); //генерация сообщений ProducerRecord<String, String> record = new ProducerRecord<>("CustomerCountry", "Precision Products", "France"); try { //отправка сообщений в кластер Kafka producer.send(record); } catch (Exception e) { e.printStackTrace(); }
Второй способ заключается в консольном создании (из командной строки). Для этого необходимо воспользоваться утилитой kafka-comsole-producer.sh
(kafka-comsole-producer.bat
для систем семейства Windows):
kafka-console-producer.sh --broker-list kafka1.example.com:9092,kafka2.example.com:9092 --topic my-topic
Можно также задать дополнительную конфигурацию продюсера через параметр --producer-property
, который отвечает за использование дополнительных классов или сущностей при запуске продюсера. В качестве примера можно привести следующий код, который отвечает за запуск продюсера с классом-сериализатором значений (values) сообщений [1]:
kafka-console-producer --broker-list IPADDRESS:9092 --topic my-topic --producer-property value.serializer=org.apache.kafka.common.serialization.IntegerSerializer
Таким образом, благодаря широкому спектру возможностей работы с продюсером, брокер Kafka может обеспечивает разработчика удобным и безопасным интерфейсом для создания приложений, работающих с большими объемами данных. Это делает Apache Kafka универсальным и надежным средством для хранения и обмена большими потоками данных, что позволяет активно использовать этот брокер сообщений в задачах Data Science и разработке распределенных приложений. В следующей статье мы поговорим про виды отправок сообщений в Kafka.
Apache Kafka для инженеров данных
Код курса
DEVKI
Ближайшая дата курса
20 января, 2025
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.
Освоить Apache Kafka на профессиональном уровне в качестве администратора Big Data кластеров, разработчика распределенных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Kafka в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:
- Администрирование кластера Kafka
- Apache Kafka для разработчиков
- Администрирование кластера Arenadata Streaming Kafka
Источники
- Н.Нархид, Г.Шапира, Т.Палино. Apache Kafka. Потоковая обработка и анализ данных