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 — источник правды, базы данных — удобные «представления».
Читайте также
DevOps и облако
Настраиваем CI/CD, контейнеризацию, мониторинг и облачную инфраструктуру. Ваши релизы становятся быстрее, надёжнее и безопаснее.
Веб-приложения
Создаём веб-приложения: SPA, PWA, порталы, личные кабинеты, SaaS-платформы. Next.js, React, TypeScript. От 200К, MVP за 4 недели.
Микросервисы
Микросервисная архитектура: что это, когда нужна бизнесу. Плюсы, минусы, сравнение с монолитом.
RabbitMQ
RabbitMQ: что это, зачем нужен, как работает. Очереди сообщений, асинхронная обработка, примеры использования.
Elasticsearch
Elasticsearch: что это, зачем нужен, как работает. Полнотекстовый поиск, аналитика логов, примеры использования.
Готовы начать проект?
Расскажите о задаче — мы предложим решение, сроки и стоимость. Первая консультация бесплатна.
30 минут · Бесплатно · Без обязательств