Повышаем скорость обработки потоков Big Data с помощью Apache Kafka Streams

Автор Категория , ,
Повышаем скорость обработки потоков Big Data с помощью Apache Kafka Streams

Читайте в нашей сегодняшней статье, как Apache Kafka Streams помогает быстро создавать приложения для обработки потоков Big Data без кластера Кафка, работать с состояниями распределенных программ без базы данных, эффективно тестировать и разворачивать потоковые микросервисы согласно DevOps-подходу, а также реальные кейсы практического применения этой технологии.

Что такое Apache Kafka Streams и зачем она нужна

Apache Kafka Streams – это клиентская библиотека для разработки приложений и микросервисов, в которых входные и выходные данные хранятся в кластерах Кафка. Она сочетает в себе простоту написания и развертывания типовых приложений Java и Scala на стороне клиента с преимуществами кластерной технологии Kafka на стороне сервера [1] в соответствии с DevOps-подходом. Подробнее о том, как API-интерфейс Кафка Стримс помогает DevOps-Инженеру и разработчику Big Data систем, читайте в нашей новой статье.

Apache Kafka Streams отлично подходит для решения следующих прикладных задач:

  • разработка распределенных приложений без кластеров с возможностью последующего масштабирования [2];
  • получение доступа к состоянию приложения без использования традиционных хранилищ (баз данных, кэшей и пр.) [2];
  • взаимодействие с клиентами в режиме реального времени, например, для оперативного оповещения о наступлении каких-либо событий [3] или построения прогнозных моделей предиктивной аналитики с минимальной задержкой [4];
  • многократные и непрерывные агрегация, группировка и свертка отфильтрованных результатов в определенном временном промежутке – к примеру, при вычислении количества произведенных биржевых операций с акциями конкретной компании за последние 10 минут или числа пользователей, кликнувших на новый рекламный баннер в течение только что прошедшей четверти часа [5];
  • DevOps-реализация потоковых микросервисов с разделяемым состоянием, каждый из которых является отказоустойчивым и высокодоступным источником достоверной информации о состоянии объектов в системе Big Data – например, для анализа устойчивости сервиса к хакерским атакам [6].
Apache Kafka Streams, Big Data, Кафка
Место Apache Kafka Streams в кластере Кафка

Где в Big Data применяется Кафка Стримс: практические примеры использования

Итак, главным образом, Apache Kafka Streams нужен для управления запросами о состоянии приложений в режиме реального времени и безкластерной разработки распределенных сервисов с последующим масштабированием. По этим прикладным направлениям можно отметить следующие наиболее яркие кейсы применения библиотеки Кафка Стримс [1]:

  • американская ежедневная газета The New York Times использует Apache Kafka Streams для хранения и распространения в реальном времени опубликованного контента среди различных приложений и систем, которые делают его доступным для читателей (сервисы подписки, мобильные приложения, новостные агрегаторы и пр.);
  • социальная сеть фотоизображений Pinterest с помощью Apache Kafka и Кафка Стримс смогла масштабировать собственную предиктивную систему бюджетирования своей рекламной инфраструктуры в режиме реального времени, повысив точность прогнозов по финансовым расходам.
  • один из крупнейших банков Нидерландов, Rabobank применяет Кафка Стримс для оповещения клиентов в режиме реального времени о финансовых событиях.
  • крупная японская ИТ-компания Line Corporation использует Кафка Стримс для надежного преобразования и фильтрации топиков Кафка, позволяя потребителям эффективно использовать подтопики (sub topics), сохраняя простоту обслуживания благодаря своей сложной, но минимальной базе кода.
  • глобальная веб-платформа для поиска отелей Trivago с помощью Apache Kafka, Kafka Connect и Кафка Стримс обеспечивает свободный доступ к корпоративным данным для всех своих разработчиков. Кафка Стримс поддерживает некоторые участки такого DevOps-конвейера, позволяя использовать различные источники данных.

В России библиотека Кафка Стримс активно используется в корпоративных Big Data системах, которые применяются в крупных data-driven компаниях (Сбербанк, Альфа-Банк, Яндекс, Авито и множество других частных и государственных организаций).

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

Источники

  1. https://kafka.apache.org/23/documentation/streams/
  2. https://www.meetup.com/ru-RU/Moscow-Kafka-Meetup/events/260976977/
  3. https://www.confluent.io/blog/real-time-financial-alerts-rabobank-apache-kafkas-streams-api/
  4. https://medium.com/@Pinterest_Engineering/using-kafka-streams-api-for-predictive-budgeting-9f58d206c996
  5. https://habr.com/ru/company/piter/blog/457756/
  6. https://habr.com/ru/company/piter/blog/449928/