Wiki
DevOps

Apache Kafka — что это простыми словами

Kafka — распределённая log-streaming платформа. Publish/subscribe, retention, replay. Основа event-driven архитектур, ETL, CQRS. Ходит в петабайтах у Netflix, LinkedIn.

Apache Kafka — распределённый event streaming платформа, разработан LinkedIn с 2010, open-source (Apache) с 2011. Не "очередь", а распределённый log: события пишутся в topic (append-only file), consumers читают в своём темпе с любого offset, данные хранятся дни/недели/бесконечно (не удаляются после чтения).

Ключевые концепции: (1) topic — логический канал, разбит на partitions для параллелизма, (2) producer пишет в топик, (3) consumer group — n consumers параллельно читают partitions, (4) retention — 7 дней (по умолчанию) до бесконечности (log compaction), (5) replication factor — сколько копий партиции в кластере (typically 3).

Use cases: (1) event-driven microservices — сервис A событие → Kafka → сервисы B, C, D реагируют независимо, (2) CDC (Change Data Capture) — Debezium стримит изменения БД → Kafka → analytics, (3) log aggregation (logs → Kafka → Elasticsearch), (4) stream processing (Kafka Streams, Flink), (5) event sourcing для CQRS.

Альтернативы: RabbitMQ — классическая AMQP-очередь, проще, для меньших масштабов. NATS / NATS JetStream — лёгкий, Go-native. Redis Streams — если Kafka overkill. Kafka — стандарт для "нужно > 100k msg/sec с гарантией сохранности".

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

Kafka без Zookeeper?
Да, с Kafka 3.5+ (KRaft mode) — Zookeeper больше не нужен. Проще операционно.
Сколько ресурсов?
Минимум 3 брокера по 4 vCPU / 8 ГБ RAM / 100 ГБ NVMe. Одиночный брокер для dev — 1 vCPU / 2 ГБ.

Смотрите также