База знаний Антона Сидорова

База знаний по аналитике, ИТ архитектуре, API. Документирование. Тесты инструментов.


Project maintained by daemon110282 Hosted on GitHub Pages — Theme by mattgraham

Kafka

Зачем

Реализация паттерна интеграции Message Broker.

Критерии выбора.

UC:

Плюсы и минусы

Плюсы:

Минусы:

Функции

mindmap

Фундаментальное отличие Kafka от брокеров очередей состоит в том:

Основные компоненты

Продюсеры (Producers)

Потребители (Consumers)

Топики (Topics)

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

Партиции (Partitions)

Подмножество данных внутри топика, которое позволяет распределять нагрузку и масштабировать обработку сообщений. Каждый топик состоит из одной или нескольких партиций

1) Каждый топик состоит из одной или нескольких партиций (разделов). 2) Сообщения внутри партиции хранятся в строгом порядке (FIFO — “первым пришёл, первым обработался”). 3) Разные партиции могут обрабатываться параллельно, что увеличивает производительность Kafka. 4) Каждое сообщение в партиции получает уникальный порядковый номер (offset), который используется Потребителями для чтения данных. 5) Продюсеры могут отправлять сообщения в партиции автоматически или по определённому ключу (например, все заказы одного клиента попадут в одну партицию). 6) Один потребитель из Группы Консьюмеров читает данные только из своей партиции, что позволяет распределять нагрузку. 7) Повышение надежности обеспечивается через репликацию: выделяют Leader Replica (основная копия данных партиции) и Follower Replica (копирует данные лидера в синхронном или асинхронном режиме).

Брокер (Broker)

сервер Kafka, который отвечает за хранение, управление и передачу данных внутри кластера

1) Хранят топики и их партиции. 2) Обрабатывают запросы Продюсеров на запись и Консьюмеров на чтение данных. 3) Управляют репликацией партиций для отказоустойчивости. 4) Автоматически перераспределяют нагрузку при добавлении новых брокеров в кластер.

Кластер (Cluster)

группа брокеров, работающих вместе для масштабирования и распределённой обработки данных

1) Это группа брокеров, работающих вместе для масштабирования и распределённой обработки данных. 2) Использует ZooKeeper или KRaft для координации (назначает лидеров партиций, отслеживает состояние брокеров). 3) Позволяет добавлять новые брокеры без остановки системы. 4) Поддерживает автоматическое восстановление при сбоях отдельных узлов.

Паттерны

Модель

Каждое сообщение (event или message) в Kafka состоит из:

TODO

Deployment