Вопрос проверяет понимание базовых понятий Kafka и того, как устроен обмен сообщениями на уровне платформы.
Kafka состоит из продюсеров, консьюмеров и брокеров. Сообщения записываются в топики, которые делятся на партиции. Консьюмеры читают данные, управляя offset. Группы консьюмеров позволяют масштабировать обработку. Эти концепции формируют основу Kafka как распределённой системы.
Kafka — это распределённая платформа потоковой передачи данных, построенная вокруг набора ключевых сущностей.
Apache Kafka — это распределённый лог событий, предназначенный для надёжной и масштабируемой передачи сообщений.
Перед перечислением важно понимать: Kafka хранит сообщения, а не просто пересылает их.
Сервер Kafka
Хранит данные топиков
Обслуживает продюсеров и консьюмеров
Логическое имя потока сообщений
Разделяется на партиции
Используется для категоризации данных
Физическое разделение топика
Обеспечивает параллелизм
Сообщения упорядочены внутри партиции
Отправляет сообщения в Kafka
Выбирает партицию
Не знает, кто будет читать данные
Читает сообщения из Kafka
Управляет offset
Может читать данные повторно
Набор консьюмеров
Каждая партиция читается одним консьюмером в группе
Обеспечивает масштабирование
Позиция сообщения в партиции
Хранится отдельно от данных
Позволяет контролировать повторное чтение
Kafka строится вокруг топиков, партиций и консьюмер-групп, что позволяет масштабировать обработку и надёжно хранить поток событий.