МК

Apache Kafka

Apache Kafka — это распределённая платформа для потоковой обработки данных. В отличие от классических очередей (RabbitMQ), Kafka хранит все события в логе и позволяет перечитывать их. Это как журнал регистрации: вы записываете каждое событие, и любой сервис может прочитать историю с любого момента.

Kafka была создана в LinkedIn для обработки миллиардов событий в день: клики, просмотры, лайки. Сейчас её используют Netflix, Uber, Airbnb, Spotify — везде, где нужно обрабатывать огромные потоки данных в реальном времени.

Ключевое отличие от RabbitMQ: в RabbitMQ сообщение после обработки удаляется. В Kafka — сохраняется. Это означает, что вы можете подключить новый сервис аналитики и «прочитать» все события за последний месяц, не затрагивая остальные сервисы. Или пересчитать данные после исправления бага.

Kafka работает с топиками (topics) — именованными потоками данных. Каждый топик разбит на партиции для параллельной обработки. Kafka легко масштабируется горизонтально: добавляете брокеры — пропускная способность растёт линейно. Типичная Kafka обрабатывает миллионы сообщений в секунду.

Ключевые преимущества

  • Хранит все события в логе — можно перечитать историю
  • Миллионы сообщений в секунду — горизонтальное масштабирование
  • Event sourcing: полная история изменений системы
  • Потоковая обработка данных в реальном времени
  • Стандарт для аналитики, data pipeline и интеграции сервисов

Примеры

Data pipeline: все действия пользователей (клики, покупки, просмотры) попадают в Kafka, откуда их читают сервис аналитики, рекомендательная система и fraud-detection. Event sourcing: вместо обновления строки в базе вы записываете событие «заказ изменён», сохраняя полную историю. Real-time дашборд: менеджер видит продажи в реальном времени, данные идут через Kafka Streams.

Когда это нужно

Kafka нужна, когда: объём событий — сотни тысяч в секунду, нужна полная история событий (event sourcing), несколько потребителей читают одни и те же данные, требуется real-time аналитика, вы строите data pipeline для ML или BI.

Связанные термины

Частые вопросы

Kafka сложнее RabbitMQ?

Да, порог входа выше. Kafka требует ZooKeeper (или KRaft в новых версиях), настройки партиций, репликации. Для простых очередей задач RabbitMQ проще и дешевле. Kafka оправдана при больших объёмах данных, потребности в event sourcing или когда несколько сервисов должны читать одни и те же события.

Сколько стоит Kafka в продакшене?

Self-hosted: 3+ сервера, минимум 8 ГБ RAM каждый — от $200/мес. Управляемые решения (Confluent Cloud, AWS MSK): от $300/мес. Для стартапа с 1000 событий/сек — дорого и избыточно. Для сервиса с 100 000+ событий/сек — окупается через надёжность и масштабируемость.

Можно ли использовать Kafka как основную базу данных?

Технически — нет. Kafka хранит события, но не поддерживает произвольные запросы (SELECT WHERE). Паттерн CQRS + Event Sourcing: Kafka хранит лог событий, а «проекции» в PostgreSQL или Elasticsearch дают возможность запрашивать данные. Kafka — источник правды, базы данных — удобные «представления».

Готовы начать проект?

Расскажите о задаче — мы предложим решение, сроки и стоимость. Первая консультация бесплатна.

30 минут · Бесплатно · Без обязательств