Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kafka: kafka

Что такое Kafka и как в ней взаимодействуют producer и consumer?

Вопрос проверяет понимание архитектуры Kafka и принципов асинхронного обмена сообщениями между компонентами системы.

Короткий ответ

Kafka — это распределённая платформа для передачи и хранения сообщений. Producer отправляет сообщения в топики, а consumer читает их оттуда. Kafka хранит сообщения на диске и позволяет читать их независимо нескольким consumer’ам. Взаимодействие построено на pull-модели. Это делает систему масштабируемой и устойчивой.

Длинный ответ

Определение

Apache Kafka — это распределённый брокер сообщений, предназначенный для:

  • обработки потоков данных

  • асинхронного взаимодействия сервисов

  • высоконагруженных систем

Kafka сочетает в себе:

  • очередь сообщений

  • лог событий

  • систему стриминга

Основные сущности Kafka

Перед разбором взаимодействия важно понимать ключевые компоненты.

  • Topic — логическое хранилище сообщений

  • Partition — физическое разбиение топика

  • Producer — отправляет сообщения

  • Consumer — читает сообщения

  • Consumer Group — группа consumer’ов для масштабирования

Как работает producer

Producer:

  • формирует сообщение (key + value)

  • выбирает partition (по key или round-robin)

  • отправляет сообщение в Kafka

producer.send(new ProducerRecord<>("orders", key, value));

Особенности:

  • producer не ждёт, пока consumer прочитает сообщение

  • возможны разные уровни надёжности доставки

Как работает consumer

Consumer:

  • подписывается на один или несколько топиков

  • периодически опрашивает Kafka (pull-модель)

  • читает сообщения последовательно

consumer.subscribe(List.of("orders"));
consumer.poll(Duration.ofMillis(100));

Каждый consumer:

  • хранит offset

  • сам управляет тем, какие сообщения уже обработаны

Взаимодействие через consumer group

Если несколько consumer’ов находятся в одной группе:

  • каждая partition читается только одним consumer’ом

  • нагрузка распределяется автоматически

  • порядок сообщений внутри partition сохраняется

Если группы разные:

  • каждую группу Kafka обслуживает независимо

  • сообщения читаются повторно

Ключевые свойства Kafka

  • высокая пропускная способность

  • горизонтальное масштабирование

  • хранение сообщений на диске

  • слабая связанность producer и consumer

Вывод

Kafka — это не просто очередь, а распределённый лог событий. Producer и consumer взаимодействуют через топики асинхронно, что делает систему устойчивой, масштабируемой и удобной для event-driven архитектур.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • Kafka

    Kafka

Ключевые слова

#kafka

Подпишись на Java Developer в телеграм