Kafka и event streaming
Kafka — это распределённый append-only лог, а не очередь, и это меняет всё.
Почему это важно: Kafka стал стандартом для event streaming в индустрии. Понимание его модели — must-have для backend-разработчика в 2024.
Главная идея
Kafka хранит события в партиционированных логах, и потребители читают их со своими offset'ами.
Как это выглядит на практике
- Producer публикует событие в topic.
- Topic делится на партиции для параллелизма.
- Consumer'ы читают события и сохраняют свой offset.
- Каждый consumer group обрабатывает события независимо.
Что происходит под капотом
- Топики не удаляются после прочтения; retention настраивается по времени или размеру.
- Партиция — единица параллелизма; порядок гарантируется только внутри партиции.
- Replication factor обеспечивает отказоустойчивость.
- Exactly-once semantics возможна, но требует транзакций и идемпотентных продюсеров.
Типичные ошибки и заблуждения
- Ошибка: Kafka — это очередь. Это лог, и поведение принципиально другое.
- Ошибка: Kafka гарантирует exactly-once из коробки. Нужна правильная настройка.
- Ошибка: больше партиций — лучше. Слишком много партиций деградирует кластер.
- Ошибка: Kafka заменяет БД. Это не БД, у неё другая модель доступа.
Ключевые выводы
- Kafka — append-only лог, не очередь.
- Партиции дают параллелизм и порядок.
- Consumer offsets хранятся в Kafka.
- Retention управляет временем хранения событий.
Термины урока
Связь с работой backend-разработчика
Kafka — стандарт event streaming в backend. Его модель отличается от очередей и требует переосмысления подхода к обработке данных.
Мини-разбор реальной ситуации
Команда использовала Kafka как очередь и удивлялась, почему consumer'ы перечитывают старые сообщения. Оказалось, retention был неделя, а не 'удалять после прочтения'.
Что запомнить
- Kafka = лог, не очередь.
- Партиция — порядок и параллелизм.
- Consumer offsets — отдельная концепция.
Итог
Kafka — фундамент современной event-driven архитектуры, и понимание его модели — обязательный навык.
Комментарии к уроку
Войдите, чтобы оставить комментарий.
Пока нет комментариев — будьте первым.