Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Kafka на Python: от основ до production
Python экосистема·10 тем·100 вопросов·уровень Middle, Senior

Kafka на Python: от основ до production

Полный курс по работе с Apache Kafka на Python. Охватывает основы архитектуры Kafka, работу с producer и consumer, сериализацию данных, consumer groups, потоковую обработку, транзакции, production-паттерны, мониторинг и интеграцию с веб-фреймворками. Используются библиотеки confluent-kafka и kafka-python.

Начать курс

Kafka на Python

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

Десять тем на confluent-kafka и kafka-python. Архитектура: топики, партиции, репликация, роль координатора. Producer: уровни подтверждения acks, повторы, идемпотентность, что именно означает «сообщение доставлено». Consumer: цикл poll, автоматический и ручной коммит и классический способ потерять или продублировать данные, закоммитив offset не в тот момент.

Сериализация — отдельная тема и отдельная боль: JSON, Avro, Protobuf, Schema Registry, эволюция схемы без остановки потребителей. Затем consumer groups: как распределяются партиции, что происходит во время rebalance и почему обработка на это время замирает.

Дальше — потоковая обработка через Faust с состоянием и окнами, транзакции и exactly-once поверх read-process-write, production-паттерны: повторы с экспоненциальной задержкой, dead letter queue, circuit breaker. Заканчивается курс эксплуатацией — метрики, логи, Prometheus и Grafana, локальный стенд в Docker Compose — и интеграцией с FastAPI, Django и Celery в event-driven архитектуре.

Нужен Python; знакомство с Kafka не требуется.

  1. 1

    Основы Kafka: архитектура, топологи, партиции

    Введение в Apache Kafka: основные концепции, архитектура, топологи, партиции, репликация.

    10 вопросов
  2. 2

    Producer: отправка сообщений, delivery guarantees

    Создание и настройка producer, отправка сообщений, уровни гарантий доставки, acks, retry.

    10 вопросов
  3. 3

    Consumer: чтение сообщений, offset, poll

    Создание consumer, подписка на топологи, poll, commit offset, ручное и автоматическое управление.

    10 вопросов
  4. 4

    Сериализация: JSON, Avro, Schema Registry

    Форматы сериализации данных: JSON, Avro, Protobuf. Работа с Schema Registry, версионирование схем.

    10 вопросов
  5. 5

    Consumer Groups: балансировка, rebalance

    Группы потребителей, балансировка нагрузки, протоколы rebalance, координатор групп.

    10 вопросов
  6. 6

    Kafka Streams и Faust: потоковая обработка

    Потоковая обработка данных: Kafka Streams, Faust, топологии, state stores, windowing.

    10 вопросов
  7. 7

    Транзакции: exactly-once semantics

    Транзакции в Kafka, idempotent producer, exactly-once semantics, read-process-write.

    10 вопросов
  8. 8

    Production-паттерны: retry, DLQ, circuit breaker

    Паттерны для production: обработка ошибок, retry с backoff, dead letter queue, circuit breaker.

    10 вопросов
  9. 9

    Мониторинг и отладка: метрики, Docker Compose

    Мониторинг Kafka: метрики, логи, Prometheus, Grafana. Локальная разработка с Docker Compose.

    10 вопросов
  10. 10

    Интеграция: FastAPI, Django, Celery

    Интеграция Kafka с веб-приложениями: FastAPI, Django, Celery, фоновые задачи, event-driven архитектура.

    10 вопросов
  11. Зачёт

    Доступен после всех тем (0 из 10)

  12. Экзамен

    Доступен после зачёта

39 / 39

Broker (Брокер)

Архитектура Kafka

Сервер Kafka, который хранит данные и обслуживает клиентов. Кластер Kafka состоит из нескольких брокеров.

Пример

docker run -p 9092:9092 confluentinc/cp-kafka:latest — запуск брокера Kafka в Docker.

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

Cluster (Кластер)

Архитектура Kafka

Группа брокеров Kafka, работающих вместе для хранения и обработки данных. Кластер обеспечивает масштабируемость и отказоустойчивость.

Пример

Кластер из 3 брокеров может пережить отказ одного брокера без потери данных.

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

Topic (Топик)

Архитектура Kafka

Логическая категория или канал, в который producer отправляют сообщения и из которого consumer читают сообщения. Топик разделяется на партиции.

Пример

Топик 'user-events' может хранить события пользователей: регистрации, логины, покупки.

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

Partition (Партиция)

Архитектура Kafka

Физический сегмент топика. Каждая партиция — это упорядоченный, неизменяемый лог сообщений. Партиции позволяют параллелизировать чтение и запись.

Пример

Топик с 6 партициями может обслуживаться 6 consumer в одной consumer group.

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

Offset (Смещение)

Producer и Consumer

Уникальный идентификатор сообщения внутри партиции. Offset начинается с 0 и увеличивается на 1 для каждого нового сообщения.

Пример

Сообщение с offset=42 в партиции 0 топика 'orders' — это 43-е сообщение в этой партиции.

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

Message (Сообщение)

Producer и Consumer

Единица данных, отправляемая в Kafka. Сообщение состоит из ключа, значения (payload), заголовков и метаданных (timestamp, offset).

Пример

{"user_id": 123, "event": "login", "timestamp": "2026-03-10T10:00:00Z"}

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

Producer (Продюсер)

Producer и Consumer

Клиент Kafka, который публикует (отправляет) сообщения в топики. Producer выбирает партицию на основе ключа сообщения или round-robin.

Пример

from confluent_kafka import Producer; p = Producer({'bootstrap.servers': 'localhost:9092'})

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

Consumer (Консьюмер)

Producer и Consumer

Клиент Kafka, который подписывается на топики и читает сообщения. Consumer управляет offset для отслеживания прочитанных сообщений.

Пример

from confluent_kafka import Consumer; c = Consumer({'bootstrap.servers': 'localhost:9092', 'group.id': 'my-group'})

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

Acks (Подтверждения)

Транзакции и гарантии

Настройка producer, определяющая уровень гарантий доставки. acks=0 (нет подтверждений), acks=1 (лидер подтверждает), acks=all (все реплики подтверждают).

Пример

acks='all' гарантирует, что сообщение сохранено во всех ISR-репликах перед подтверждением.

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

Replication (Репликация)

Архитектура Kafka

Механизм копирования данных партиции на несколько брокеров для отказоустойчивости. Одна реплика — лидер, остальные — фолловеры.

Пример

Топик с replication.factor=3 хранит 3 копии каждой партиции на разных брокерах.

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

ISR (In-Sync Replicas)

Архитектура Kafka

Множество реплик партиции, которые полностью синхронизированы с лидером. Только ISR-реплики могут стать новым лидером при failover.

Пример

Если ISR=[broker1, broker2, broker3], отказ broker1 не приведёт к потере данных.

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

Leader (Лидер)

Архитектура Kafka

Реплика партиции, которая обслуживает все операции чтения и записи. Остальные реплики (фолловеры) реплицируют данные с лидера.

Пример

Для партиции 0 топика 'events' лидером может быть broker-1, а broker-2 и broker-3 — фолловеры.

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

Consumer Group (Группа потребителей)

Consumer Groups

Группа consumer, которые совместно потребляют сообщения из топиков. Каждая партиция обслуживается только одним consumer в группе.

Пример

Consumer group 'order-processors' с 4 consumer может параллельно обрабатывать 4 партиции топика 'orders'.

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

Rebalance (Ребалансировка)

Consumer Groups

Процесс перераспределения партиций между consumer в группе. Происходит при присоединении нового consumer, отказе или изменении топика.

Пример

При добавлении 5-го consumer в группу с 4 consumer и 8 партициями, каждый consumer получит по 2 партиции вместо 1-2.

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

Group Coordinator (Координатор группы)

Consumer Groups

Брокер Kafka, который управляет consumer group: отслеживает участников, назначает партиции, обрабатывает commit offset.

Пример

При старте consumer отправляет JoinGroup request координатору своей группы.

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

Serialization (Сериализация)

Сериализация данных

Процесс преобразования объектов Python в байты для отправки в Kafka. Популярные форматы: JSON, Avro, Protobuf, Pickle.

Пример

json.dumps({'user_id': 123}) → b'{"user_id": 123}'

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

Schema Registry

Сериализация данных

Сервис для хранения и управления схемами данных (Avro, Protobuf, JSON Schema). Обеспечивает совместимость схем при эволюции.

Пример

Confluent Schema Registry позволяет проверить совместимость новой схемы перед публикацией.

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

Avro

Сериализация данных

Формат сериализации данных с использованием схем. Avro компактен, быстр и поддерживает эволюцию схем через Schema Registry.

Пример

Схема Avro определяет поля record: {"type": "record", "name": "User", "fields": [{"name": "id", "type": "int"}]}

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

Kafka Streams

Потоковая обработка

Библиотека для построения потоковых приложений на Java/Scala. Обрабатывает данные из Kafka в реальном времени с гарантиями exactly-once.

Пример

KStream<String, Order> orders = builder.stream("orders"); orders.filter((k, v) -> v.amount > 100).to("large-orders");

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

Faust

Потоковая обработка

Библиотека потоковой обработки для Python, вдохновлённая Kafka Streams. Предоставляет декларативный API для обработки событий.

Пример

@app.agent(OrderStream) async def process_order(orders): async for order in orders: await handle(order)

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

State Store (Хранилище состояния)

Потоковая обработка

Локальное хранилище состояния в потоковых приложениях. Позволяет выполнять агрегации, join и другие stateful-операции.

Пример

KTable для подсчёта количества событий по ключу хранит состояние в RocksDB.

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

Windowing (Окна)

Потоковая обработка

Механизм группировки событий по временным интервалам. Типы окон: tumbling (неперекрывающиеся), hopping (перекрывающиеся), session (по сессиям).

Пример

Tumbling window размером 5 минут группирует события по 5-минутным интервалам без перекрытия.

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

Idempotent Producer

Транзакции и гарантии

Producer, который гарантирует, что каждое сообщение будет записано в партицию ровно один раз, даже при retry. Достигается через PID и sequence numbers.

Пример

enable.idempotence=true в конфигурации confluent-kafka включает идемпотентность.

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

Exactly-Once Semantics

Транзакции и гарантии

Гарантия, что каждое сообщение будет обработано ровно один раз, без потерь и дубликатов. Реализуется через транзакции и idempotent producer.

Пример

Транзакционный producer атомарно отправляет сообщения в несколько топиков.

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

Transaction (Транзакция)

Транзакции и гарантии

Атомарная операция записи сообщений в несколько топиков и партиций. Либо все сообщения записываются, либо ни одно.

Пример

producer.init_transactions(); producer.begin_transaction(); producer.send(); producer.commit_transaction()

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

Dead Letter Queue (DLQ)

Production-паттерны

Топик для хранения сообщений, которые не удалось обработать после нескольких попыток. Позволяет изолировать проблемные сообщения и анализировать их.

Пример

После 3 failed retry сообщение отправляется в 'orders-dlq' для ручного анализа.

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

Backoff (Задержка повторной попытки)

Production-паттерны

Стратегия задержки между retry. Exponential backoff увеличивает задержку экспоненциально: 1с, 2с, 4с, 8с...

Пример

retry.with_backoff(base_delay=1, max_delay=60, multiplier=2)

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

Circuit Breaker

Production-паттерны

Паттерн для защиты системы от каскадных сбоев. При множественных ошибках circuit breaker 'размыкается' и временно блокирует вызовы.

Пример

biopython-circuit-breaker: @circuit.breaker(failure_threshold=5, recovery_timeout=30)

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

Consumer Lag (Отставание потребителя)

Мониторинг и отладка

Разница между последним сообщением в партиции и последним прочитанным сообщением. Высокий lag указывает на проблемы с производительностью consumer.

Пример

kafka-consumer-groups --describe --group my-group показывает lag для каждой партиции.

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

Retention Policy (Политика хранения)

Архитектура Kafka

Настройка, определяющая как долго сообщения хранятся в топике. Может быть по времени (retention.ms) или по размеру (retention.bytes).

Пример

retention.ms=604800000 хранит сообщения 7 дней, после чего они удаляются.

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

Log Compaction (Уплотнение лога)

Архитектура Kafka

Процесс удаления старых сообщений, если для того же ключа есть более новое сообщение. Полезно для хранения последнего состояния по ключу.

Пример

Топик с cleanup.policy=compact хранит только последнее значение для каждого ключа.

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

ZooKeeper

Архитектура Kafka

Распределённая система координации, используемая Kafka для хранения метаданных кластера. В Kafka 3.0+ заменяется на KRaft (Kafka Raft).

Пример

zookeeper.connect=localhost:2181 — подключение Kafka к ZooKeeper.

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

Poll (Опрос)

Producer и Consumer

Метод consumer для получения сообщений из Kafka. Consumer должен регулярно вызывать poll() для получения новых сообщений и heartbeat.

Пример

msg = consumer.poll(timeout=1.0) — получение сообщения с таймаутом 1 секунда.

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

Commit Offset (Фиксация смещения)

Producer и Consumer

Процесс сохранения текущего offset consumer в Kafka. Позволяет возобновить чтение с нужной позиции после перезапуска.

Пример

consumer.commit(asynchronous=False) — синхронный commit текущего offset.

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

Auto Commit (Автоматическая фиксация)

Producer и Consumer

Автоматический commit offset consumer. Удобно, но может привести к потере сообщений или дубликатам при сбоях.

Пример

enable.auto.commit=true — автоматический commit каждые 5 секунд (auto.commit.interval.ms).

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

Partitioner (Партиционировщик)

Producer и Consumer

Компонент producer, который определяет в какую партицию отправить сообщение. По умолчанию — hash(key) % num_partitions или round-robin.

Пример

kafka-python позволяет задать кастомный partitioner: RandomPartitioner, HashPartitioner.

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

Heartbeat (Сердцебиение)

Consumer Groups

Периодический сигнал от consumer координатору группы, подтверждающий что consumer активен. Если heartbeat пропадает, начинается rebalance.

Пример

heartbeat.interval.ms=3000 — heartbeat каждые 3 секунды. session.timeout.ms должен быть больше.

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

Prometheus

Мониторинг и отладка

Система мониторинга и сбора метрик. Kafka экспортирует метрики через JMX, которые Prometheus собирает и хранит.

Пример

kafka_server_brokers_total — метрика количества брокеров в кластере Kafka.

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

Grafana

Мониторинг и отладка

Платформа визуализации метрик. Grafana подключается к Prometheus и отображает метрики Kafka на дашбордах.

Пример

Дашборд Kafka с графиками: messages in/out, consumer lag, broker CPU.

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

Частые вопросы о курсе «Kafka на Python: от основ до production»

Состав курса, уровни, практика и способы проверки знаний.

Что входит в курс «Kafka на Python: от основ до production»?

Курс включает 10 тем и 100 вопросов с разбором ответа. Начать можно с первой темы курса.

Для какого уровня рассчитан курс «Kafka на Python: от основ до production»?

Маршрут охватывает уровни Middle, Senior. Темы расположены от основы к более сложным инженерным задачам, поэтому можно начать с подходящего места и не пропускать важные зависимости.

Как проверить, что материал усвоен?

После прохождения тем доступен зачёт по курсу «Kafka на Python: от основ до production» — 20 случайных вопросов с порогом 80%. После зачёта открывается экзамен с развёрнутыми ответами и автоматической оценкой, приближённый к техническому собеседованию.

Курс «Kafka на Python: от основ до production» бесплатный?

Да, курс полностью бесплатный: все 10 тем доступны без оплаты.