Найти в Дзене
Yandex.Cloud

Как и зачем бизнес использует Apache Kafka?

Kafka может обрабатывать огромные объемы данных в реальном времени, а управляемый сервис в облаке упростит задачу управления и обслуживания.
Компания LinkedIn в 2011 году разработала брокер сообщений Kafka. Сейчас Kafka — это отказоустойчивая распределенная стриминговая платформа с открытым исходным кодом, которая позволяет хранить, обрабатывать и доставлять огромные объемы данных
Оглавление

Kafka может обрабатывать огромные объемы данных в реальном времени, а управляемый сервис в облаке упростит задачу управления и обслуживания.

Компания LinkedIn в 2011 году разработала брокер сообщений Kafka. Сейчас Kafka — это отказоустойчивая распределенная стриминговая платформа с открытым исходным кодом, которая позволяет хранить, обрабатывать и доставлять огромные объемы данных в реальном времени.

Что такое Apache Kafka

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

Топик — это  способ группировки потоков сообщений в хранилище по категориям. Сервисы публикуют сообщения определенной категории в топик , а потребители подписываются на топик и читают из него сообщения. Для каждого топика Apache Kafka ведет лог сообщений, который может быть разбит на несколько разделов. Разделы — это последовательность сообщений топика в порядке поступления.

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

Apache Kafka — это не СУБД в чистом виде, несмотря на то, что она  обеспечивает атомарность, согласованность, изолированность и долговечность хранимых данных, а также предоставляет возможность избирательного доступа к данным с помощью KSQL SQL-движка на базе API Kafka Streams. Платформу используют как журнал фиксации и интеграционный центр для множества внешних СУБД и хранилищ.

-2

Где применяется Kafka

Основное назначение Apache Kafka — это централизованный сбор, обработка, безопасное хранение и передача большого количества сообщений от отделенных друг от друга сервисов. Эта распределенная, горизонтально масштабируемая платформа обычно применяется там, где очень много больших неструктурированных данных :

  • Масштабные IoT / IIoT-системы, характеризующиеся архитектурой с множеством датчиков, сенсоров, контроллеров и других конечных устройств.
  • Системы аналитики. Например, Kafka используется в компаниях IBM и DataSift в качестве коллектора для мониторинга событий и трекера потребления потоков данных пользователями в режиме реального времени.
  • Финансовые системы. Используют финансовые организации: Сбербанк, Тинькофф, Альфа-Банк, ING Bank.
  • Социальные сети. В Twitter Kafka — часть инфраструктуры потоковой обработки, а в LinkedIn используется для потоковой передачи данных о деятельности и операционных показателях приложений.
  • Системы геопозиционирования. Foursquare — для передачи сообщений между онлайн- и офлайн-системами, а также для интеграции средств мониторинга в свою big data инфраструктуру на базе Hadoop.
  • Телеком-операторы. ВымпелКом, МТС, Ростелеком и др.
  • Онлайн-игры. Например, Demonware, подразделение Activision Blizzard — для обработки логов пользователей.

Самый простой пример: с помощью Apache Kafka можно собирать логи сеансов от клиентов в потоковом режиме или логи с физических файлов журналов с серверов, а затем помещать их в одном месте, например в HDFS — файловой системе Apache Hadoop. Также Apache Kafka позволяет построить конвейер данных, чтобы с помощью алгоритмов машинного обучения извлекать из сырой информации сведения, ценные для бизнеса.

Как сделать управление проще — Managed Service for Apache Kafka

Создание, настройка и управление кластерами Apache Kafka — очень сложная задача, требующая внимания сертифицированных специалистов. В Yandex.Cloud брокер сообщений предоставляется как управляемый сервис, управление и обслуживание которого производится на стороне облачной платформы. Пользователь может создавать и настраивать кластеры для решения своих задач, а управление брокерами, обновление и оптимизация работы Apache Kafka происходит автоматически.

Возможности управляемого сервиса Managed Service for Apache Kafka в Yandex.Cloud:

  • Быстрое добавление брокеров в кластер.
  • Распределение брокеров кластера между зонами доступности.
  • Быстрое изменение ресурсов высокодоступной конфигурации без остановки работы и потери данных.
  • Настройка политики очистки лога, типа сжатия и максимального количества сообщений для эффективного использования вычислительных, сетевых и дисковых ресурсов.
  • Настройка репликации для обеспечения отказоустойчивости.
  • Анализ метрики и состояния кластера.
  • Автоматическая замена узлов кластера при отказе.
  • Шифрование соединений при помощи протокола TLS. Механизм SASL контролирует доступ пользователей к топикам по спискам контроля доступа (ACL).
  • Соответствие требованиям 152-ФЗ, индустриальным стандартам ISO и GDPR.

Apache Kafka вместе с другими управляемыми сервисами Yandex.Cloud позволяет создавать на облачной платформе витрины данных. Например, Yandex Managed Service for ClickHouse отлично справляется с обработкой запросов к большим объемам данных, Yandex Data Proc автоматически создаст и настроит кластеры Spark, Hadoop и другие компоненты, а Yandex DataLens позволит визуализировать эти данные и построить отчеты. С помощью Apache Kafka можно поставлять данные напрямую в ClickHouse без дополнительной разработки.

Источник: https://cloud.yandex.ru/blog/posts/2021/02/managed-kafka-overview