Junior
70
questionbank

Что такое Kafka?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Распределенная, отказоустойчивая publish-subscribe система обмена сообщениями, разработанная LinkedIN и ставшая проектом Apache. Используется для построения realtime data pipelines и стриминговых приложений.

Основные компоненты и концепции:

  • Broker: Сервер Kafka. Кластер Kafka состоит из одного или нескольких брокеров.
  • Topic: Категория, в которую публикуются сообщения. Логически разделяет потоки данных.
  • Partition: Топик делится на партиции. Каждая партиция — упорядоченная, неизменяемая последовательность сообщений. Сообщения в пределах партиции назначаются уникальный смещение (offset).
  • Producer: Приложение, публикующее сообщения в топик.
  • Consumer: Приложение, которое подписывается на топик и потребляет сообщения.
  • Consumer Group: Группа консьюмеров, которые совместно потребляют сообщения из одного или нескольких топиков. Сообщения из партиции доставляются только одному консьюмеру в группе.
  • Zookeeper: Используется для координации кластера Kafka (управление брокерами, топиками, партициями, смещениями консьюмерских групп). В более поздних версиях Kafka роль Zookeeper частично переходит к встроенной службе консенсуса KRaft.

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

Примеры использования:

  • Сбор и обработка логов в реальном времени.
  • Стримовая обработка данных (через Kafka Streams, KSQL).
  • Разъединение сервисов (микросервисная архитектура).
  • Синхронизация данных между системами.