Продвинутый

Kafka и event streaming

Урок 3 из 3 в курсе Событийная архитектура

Содержание курса (3/3)

Kafka и event streaming

Kafka — это распределённый append-only лог, а не очередь, и это меняет всё.

Почему это важно: Kafka стал стандартом для event streaming в индустрии. Понимание его модели — must-have для backend-разработчика в 2024.

Главная идея

Kafka хранит события в партиционированных логах, и потребители читают их со своими offset'ами.

Как это выглядит на практике

  1. Producer публикует событие в topic.
  2. Topic делится на партиции для параллелизма.
  3. Consumer'ы читают события и сохраняют свой offset.
  4. Каждый consumer group обрабатывает события независимо.

Что происходит под капотом

  • Топики не удаляются после прочтения; retention настраивается по времени или размеру.
  • Партиция — единица параллелизма; порядок гарантируется только внутри партиции.
  • Replication factor обеспечивает отказоустойчивость.
  • Exactly-once semantics возможна, но требует транзакций и идемпотентных продюсеров.

Типичные ошибки и заблуждения

  • Ошибка: Kafka — это очередь. Это лог, и поведение принципиально другое.
  • Ошибка: Kafka гарантирует exactly-once из коробки. Нужна правильная настройка.
  • Ошибка: больше партиций — лучше. Слишком много партиций деградирует кластер.
  • Ошибка: Kafka заменяет БД. Это не БД, у неё другая модель доступа.

Ключевые выводы

  • Kafka — append-only лог, не очередь.
  • Партиции дают параллелизм и порядок.
  • Consumer offsets хранятся в Kafka.
  • Retention управляет временем хранения событий.

Термины урока

Topic: канал для событий определённого типа.
Partition: единица параллелизма топика.
Offset: позиция consumer'а в партиции.
Consumer group: набор consumer'ов, делящих обработку партиций.

Связь с работой backend-разработчика

Kafka — стандарт event streaming в backend. Его модель отличается от очередей и требует переосмысления подхода к обработке данных.

Мини-разбор реальной ситуации

Команда использовала Kafka как очередь и удивлялась, почему consumer'ы перечитывают старые сообщения. Оказалось, retention был неделя, а не 'удалять после прочтения'.

Что запомнить

  • Kafka = лог, не очередь.
  • Партиция — порядок и параллелизм.
  • Consumer offsets — отдельная концепция.

Итог

Kafka — фундамент современной event-driven архитектуры, и понимание его модели — обязательный навык.

Комментарии к уроку

Войдите, чтобы оставить комментарий.

Пока нет комментариев — будьте первым.