Gymterview
junior

Что такое Apache Kafka?

Apache Kafka — это распределённая платформа потоковой передачи данных с открытым исходным кодом, разработанная для высокоскоростной обработки больших объёмов данных с минимальной задержкой.

Аналогия из жизни: Kafka — это как конвейерная лента на заводе. Производители кладут детали на ленту, а потребители забирают их в нужном темпе. Лента не останавливается, если один потребитель отстал, и позволяет нескольким участникам работать параллельно.

Преимущества

  • Персистентность данных — сообщения хранятся на диске и доступны для повторного чтения
  • Высокая производительность — миллионы сообщений в секунду с минимальной задержкой
  • Независимость пайплайнов обработки — потребители работают независимо друг от друга
  • Возможность replay — можно просмотреть историю записей заново
  • Гибкость — подходит для разных сценариев: от логирования до event-driven архитектуры

Когда использовать

  • Lambda-архитектура или Kappa-архитектура
  • Стриминг больших данных
  • Много клиентов (producer и consumer)
  • Требуется кратное масштабирование

Чего в Kafka нет из коробки

  • Это не классический брокер сообщений
  • Нет отложенных сообщений
  • Нет DLQ (Dead Letter Queue) как в RabbitMQ
  • Нет поддержки AMQP / MQTT
  • Нет TTL на отдельное сообщение
  • Нет очередей с приоритетами

На собеседовании: интервьюер ожидает не просто определение, а понимание позиционирования Kafka. Частая ошибка — называть Kafka «брокером сообщений». Kafka — это платформа потоковой передачи данных, которая принципиально отличается от классических брокеров: сообщения не удаляются после прочтения, потребители сами управляют offset, и данные хранятся на диске.