3.27M
Категория: Базы данныхБазы данных

Основы Apache Kafka и как с ней работать

1.

Основы Apache Kafka и
как с ней работать
Пашков Константин

2.

Предыстория

3.

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

4.

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

5.

Брокеры
Кластер Kafka состоит из
брокеров. Можно представить
систему как дата-центр и
серверы в нём.
Все брокеры соединены друг с
другом сетью и действуют
сообща, образуя единый
кластер. Когда мы говорим, что
продюсеры пишут события в
Kafka-кластер, то
подразумеваем, что они
работают с брокерами в нём.

6.

Консумеры
События, которые продюсеры
записывают на локальные диски
брокеров, могут читать
консумеры — это тоже
приложения, которые вы
разрабатываете. В этом случае
кластер Kafka — это по-прежнему
нечто, что обслуживается
инфраструктурой, где вы как
пользователь пишете
продюсеров и консумеров.
Программа-консумер
подписывается на события или
поллит и получает данные в
ответ. Так продолжается по
кругу.

7.

Архитектура Kafka

8.

Zookeeper
Zookeeper — это выделенный кластер серверов для образования кворума-согласия и
поддержки внутренних процессов Kafka. Благодаря этому инструменту мы можем
управлять кластером Kafka: добавлять пользователей и топики, задавать им
настройки.

9.

Топики
Топик — это логическое разделение категорий сообщений на группы. Например, события по
статусам заказов, координат партнёров, маршрутных листов и так далее.

10.

Партиции и сегменты

11.

Пример работы

12.

Сегмент
Сегмент удобно представить как обычный лог-файл: каждая следующая запись добавляется в конец
файла и не меняет предыдущих записей. Фактически это очередь FIFO (First-In-First-Out) и Kafka реализует
именно эту модель.

13.

Репликация
данных
Если одна партиция будет
существовать на одном
брокере, в случае сбоя часть
данных станет недоступной.
Такая система будет хрупкой и
ненадежной. Для решения
проблемы Kafka представляет
механизм репликации
партиций между брокерами.

14.

15.

Балансировка и партицирование

16.

Надёжность доставки

17.

Дизайн консумера
Типичная программаконсумер работает так: при
запуске внутри неё работает
таймер, который
периодически поллит новые
записи из партиций брокеров.
Поллер получает список
батчей, связанных с топиками
и партициями, из которых
читает консумер. Далее
полученные сообщения в
батчах десериализуются. В
итоге консумер, как правило,
обрабатывает сообщения.

18.

Консумер-группы

19.

Ребалансировка консумер-групп

20.

Спасибо за внимание!
English     Русский Правила