Что такое потоки событий и почему они так важны для Kafka

курсы администраторов, обучение kafka, курсы kafka, курсы администраторов, kafka для начинающих, курсы администрирования kafka

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

 

Как работают потоки событий в Apache Kafka: особенности обработки и регистрации событий Big Data

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

 

курсы администраторов, обучение kafka, курсы kafka, курсы администраторов, kafka для начинающих, курсы администрирования kafka
Заполнение потока событий

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

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

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

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

KStream<Integer, UserActivity> 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 и разработке распределенных приложений. В следующей статье мы поговорим про фиксации смещений в Kafka.

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

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

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

Источники

  1. https://habr.com/ru/company/piter/blog/424739/
  2. Н.Нархид, Г.Шапира, Т.Палино. Apache Kafka. Потоковая обработка и анализ данных

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

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