Что такое события в распределенном брокере Kafka

курсы kafka rest, apache kafka для начинающих, kafka это, big data курсы, kafka streams, курс kafka spark, курсы по kafka, курсы big data москва, курс kafka spark, курс kafka spark, курсы администрирования kafka, курс kafka spark, apache kafka для начинающих, kafka это, ksql, kafka streams, обучение kafka, курсы потоковой обработки kafka, курс kafka spark, Big Data, курсы kafka rest, apache kafka для начинающих, kafka это, big data курсы, kafka streams, курс kafka spark, курсы по kafka, курсы big data москва, курс kafka spark, apache kafka для начинающих, apache kafka, курсы администраторов spark, apache kafka для начинающих, Big Data, Data Science, kafka streaming, Kafka, брокер kafka, avro

В прошлый раз мы говорили про сериализаторы и десериализаторы в Kafka. Сегодня поговорим про события в брокере Kafka и про используемые ими потоки. Читайте далее про особенности работы с событиями в распределенной среде брокера Apache Kafka, благодаря которым брокер Kafka способен обрабатывать множество одновременно происходящих событий Big Data с весьма высокой скоростью.

Как работают события и их потоки в брокере Kafka

Событие в Kafka — это факт, описывающий изменение состояния объекта (например, заполнение топика сообщениями или разбиение топика на разделы). Kafka узнает о новом событии благодаря механизму регистрации событий. Регистрация событий — это считывание текущего состояния объекта и сравнение этого состояния с более ранним. В случае, если текущее состояние объекта отличается от предыдущего, брокер Kafka автоматически регистрирует новое событие, а также создает поток событий, в который помещаются все события зарегистрированные в данный момент времени. Поток событий (event stream) представляет собой коллекцию (множество) событий, которые происходят одновременно в данный момент времени.

Особенности работы потоков событий: несколько практических примеров

Потоки событий создаются через Kafka-потоки, за которые отвечает класс KStreamBuilder. В качестве примера рассмотрим создание потока событий и помещение в него события (event) путем его сериализации (превращение объекта в последовательность битов) [1]:

KStreamBuilder builder = new KStreamBuilder() //создание нового потока Kafka ;
//сериализация текущего события
builder.stream(keySerde, valueSerde, "my_entity_events") .groupByKey(keySerde, valueSerde)
 // помещение сериализованного события в поток
 .reduce((currentState, event) keySerde, valueSerde,"my_entity_store").toStream();
return builder; //возвращение заполненного события

При регистрации каждого нового события происходит обогащение каждого текущего потока событий. Обогащение потока событий — это расширение (добавление) информации текущего потока событий путем его соединения с другим потоком событий, который был запущен в иной промежуток времени. В качестве примера рассмотрим обогащение потока событий перехода по ссылкам на сайте потоком событий создания таблицы профилей пользователей (во время регистрации на сайте). Следующий код на языке Java отвечает за создание потока перехода по ссылкам (views) и потока создания таблицы профилей пользователей (profiles) [1]:

// поток перехода по ссылкам
KStream <Integer, PageView> views =
builder.stream(Serdes.Integer(), new PageViewSerde(), Constants.PAGE_VIEW_TOPIC);
// поток для создания таблицы профилей пользователей
KTable profiles = builder.table(Serdes.Integer(), new ProfileSerde(), Constants.USER_PROFILE_TOPIC, "profile-store");

Для обогащения потока перехода по ссылкам необходимо создать новый поток, который является результатом соединения этого потока с потоком, отвечающим за создание таблицы профилей пользователей. Следующий код на языке Java отвечает за создание результирующего потока [1]:

KStream viewsWithProfile = views.leftJoin(profiles, 
(page, profile) -> new UserActivity(profile.getUserID(), 
profile.getUserName(), profile.getZipcode(), profile.getInterests(), "", page.getPage()));

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

Таким образом, благодаря механизму создания потоков событий, брокер Kafka может достаточно быстро обрабатывать большое количество событий Big Data, объединяя их в один поток выполнения. Это делает Apache Kafka универсальным средством для хранения и обмена большими потоками данных, что позволяет активно использовать этот фреймворк в задачах Data Science и разработке распределенных приложений.

Apache Kafka для инженеров данных

Код курса
DEVKI
Ближайшая дата курса
11 апреля, 2023
Длительность обучения
32 ак.часов
Стоимость обучения
88 000 руб.

Освоить Apache Kafka на профессиональном уровне в качестве администратора Big Data кластеров, разработчика распределенных приложений и прочих прикладных областях Data Science вы сможете на практических курсах по Kafka в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

Записаться на курс

Смотреть раcписание

Источники

  1. Н.Нархид, Г.Шапира, Т.Палино. Apache Kafka. Потоковая обработка и анализ данных

Добавить комментарий

Поиск по сайту