Coconote
AI notes
AI voice & video notes
Try for free
📘
Основы Apache Kafka: Механизмы и Принципы
Jul 13, 2024
Основы Apache Kafka: Механизмы и Принципы
Введение
Apache Kafka
: распределенный брокер сообщений для событийного стриминга
Open Source
: Разработан LinkedIn, код опубликован в 2011 году
Использование Kafka
: высокая производительность, стриминговая аналитика, интеграция с различными источниками данных
Основные свойства Kafka
Распределенность
: множественные серверы (нод) объединены в единую систему
Отказоустойчивость
: высокая доступность данных
Согласованность данных (CAP-теорема)
: поддерживает консистентность
Горизонтальное масштабирование
: простые машины, легко добавлять/убирать ноды
Интеграция
: множество баз данных и платформ уже интегрированы
История
Code опубликован в 2011 году, под Apache 2.0 лицензией
Название от создателя - Джей Кребс, вдохновлен Францем Кафкой
Основные задачи Kafka
Отправка и получение сообщений
: продюсеры отправляют данные, консьюмеры получают
Широковещательный режим
: поддержка разных потребителей для одних и тех же данных
Преимущества Kafka
Отказоустойчивость
: данные не теряются при сбоях нод
Сбалансированность и масштабируемость
: простое добавление нод
Производительность
: миллионы сообщений в секунду, FIFO очередь
Основные компоненты Kafka
Брокеры (Kafka сервер)
: принимают сообщения от продюсеров, хранят и предоставляют данные консьюмерам
Zookeeper
: хранит конфигурацию состояния кластера
Топик
: логическая сущность для хранения сообщений, разбивается на партиции
Продюсеры и консьюмеры
: отправка и получение сообщений
Хранение данных
Файловая система
: данные хранятся в лог-файлах структуры
Сегменты
: при превышении размера сегмента (по умолчанию 1GB) создается новый
Удаление данных
: автоматическое удаление по TTL, удаляются сегменты целиком
Репликация данных
Надежность и отказоустойчивость
обеспечиваются репликацией
Лидер и фолловеры
: в партиции одна из реплик назначается лидером, остальные фолловеры
Коммуникация с лидер-репликой
: запись и чтение только с лидера
Минимальное количество in-sync реплик
: настройка для обеспечения надежности записи
Отправка данных
Метаданные
: продюсеры запрашивают метаданные кластеров
Компрессия
: различными алгоритмами (snappy, gzip)
Batching
: отправка данных батчами для повышения производительности
Потребление данных
Консьюмер группы
: группа консьюмеров обрабатывает партиции топика параллельно
Offset
: отслеживание обработанных сообщений для обеспечения точной доставки
Коммит офсетов
: автоматические и ручные коммиты
Перфоманс и оптимизация
Zero-copy
: передача данных из памяти страницы прямо в сокет клиента
Кэширование и оптимизация
: через системные настройки и параметры
Гибкость конфигурации
: множество настроек для различных кейсов использования
Заключение
Популярность
: Надежность, производительность, широкая интеграция
Гибкость
: Поддержка упорядоченного широковещания, различные настройки для перфоманса
Нюансы конфигурации
: Важно правильно настроить продюсеров, консьюмеров и брокеров для обеспечения надежной работы си стемы
📄
Full transcript