System Design Space
Граф знанийНастройки

Обновлено: 1 мая 2026 г. в 18:48

Kafka: The Definitive Guide, 2nd Edition (short summary)

средний

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

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

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

Практическая польза главы

Практика проектирования

Даёт практический каркас для построения событийного контура на Kafka в масштабируемых системах.

Качество решений

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

Аргументация на интервью

Упрощает объяснение гарантий доставки, исторического прогона и стратегий очереди ошибочных сообщений в рабочей системе.

Риски и компромиссы

Подсвечивает риски нарушения порядка, всплесков отставания потребителей и неконтролируемого роста хранилища.

Источник

Пост в Книжном кубе

Авторский обзор книги от Alexander Polomodov

Читать пост

Kafka: The Definitive Guide, 2nd Edition (Apache Kafka. Потоковая обработка и анализ данных, 2-е издание)

Авторы: Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty
Издательство: O'Reilly Media, Inc.
Объём: 485 страниц

Практический разбор Kafka как брокера и журнала с партициями: производители, группы потребителей, репликация, гарантии доставки, Kafka Connect, Kafka Streams и эксплуатация кластера.

Оригинал
Перевод

Kafka полезна не только как , а как : записывают сообщения в , а читают партиции параллельно и фиксируют свои .

В книге важно не потерять связь между , , , и : именно на этих местах Kafka перестаёт быть просто брокером и становится платформой данных.

Издания книги

1-е издание

Осень 2017 года: 11 глав об основах Kafka, производителях, потребителях, администрировании и потоковой обработке.

2-е издание

Конец 2021 года: расширенное издание с отдельными главами про программное управление кластером, транзакции, безопасность и межкластерную репликацию.

Ключевые концепции Kafka

Сообщения и пакеты записей

Сообщение несёт ключ, значение, заголовки и метку времени. Несколько сообщений объединяются в пакет записей, чтобы снизить накладные расходы сети и диска.

Топики и партиции

Топик задаёт логический поток записей, а партиции делят этот поток на независимые журналы с собственным порядком и возможностью масштабирования.

Производители событий

Клиенты, которые публикуют записи в Kafka, выбирают топик и ключ партиционирования, а также настраивают подтверждения записи.

Потребители событий

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

Связанная тема

Designing Data-Intensive Applications, 2nd Edition

Глубокий разбор потоковой обработки в главе 11

Читать обзор

Рекомендуем

Streaming Data

Архитектура потоковых систем: от сбора до потребления данных

Читать обзор

Структура книги (2-е издание, 14 глав)

1

Meet Kafka

Введение в модель публикации и подписки, история появления Kafka в LinkedIn и базовые понятия: сообщения, пакеты, схемы, топики, партиции, производители, потребители и брокеры.

2

Managing Apache Kafka Programmaticallyновая глава

AdminClient API как асинхронный интерфейс для управления топиками, конфигурациями, группами потребителей и метаданными кластера; отдельно разбираются выбор лидера и перераспределение реплик.

3

Installing Kafka

Установка и настройка брокеров, подбор серверных ресурсов, конфигурация ZooKeeper или KRaft. Во 2-м издании больше внимания уделено облачным развёртываниям.

4

Kafka Producers

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

5

Kafka Consumers

Группы потребителей, назначение партиций, управление смещениями (автоматическая, синхронная и асинхронная фиксация), обработчики перебалансировки и одиночные потребители.

6

Transactionsновая глава

Гарантии «ровно один раз», транзакционный API производителя, изоляция read_committed, идемпотентность и атомарные записи между несколькими партициями.

7

Kafka Internals(под капотом)

Участие брокеров в кластере, роль контроллера, репликация, список синхронных реплик, обработка запросов, физическое хранение, сегменты журнала и индексы.

8

Reliable Data Delivery

Гарантии доставки: возможная потеря, повторная доставка и обработка с эффектом «ровно один раз». Настройки подтверждений, повторов, потребителей и брокеров, которые определяют фактическую надёжность.

9

Securing Kafkaновая глава

Шифрование канала, аутентификация SASL (GSSAPI, PLAIN, SCRAM, OAUTHBEARER), списки управления доступом, аудит и эксплуатационная безопасность.

10

Building Data Pipelines

Kafka Connect: коннекторы-источники и коннекторы-приёмники, одиночный и распределённый режимы, преобразования, конвертеры и очереди ошибочных сообщений.

11

Cross-Cluster Data Mirroring

MirrorMaker 2.0, архитектуры с несколькими дата-центрами (Active-Active, Active-Passive), репликация топиков и смещений потребителей между кластерами.

12

Administering Kafka

Операции с топиками, управление группами потребителей, перераспределение партиций, эксплуатационные настройки и повседневные операции с кластером.

13

Monitoring Kafka

Метрики JMX, ключевые показатели брокеров, производителей и потребителей: недореплицированные партиции, отставание потребителей и инструменты наблюдения.

14

Stream Processing

Kafka Streams API: операции без состояния и с состоянием, оконная обработка, соединения потоков, KTables и KStreams, обработка с гарантиями «ровно один раз» и тестирование.

Новое во 2-м издании

  • AdminClient API — программное управление кластером
  • Transactions — гарантии «ровно один раз» и атомарные операции записи
  • Securing Kafka — шифрование канала, SASL, списки доступа и эксплуатационная безопасность
  • MirrorMaker 2.0 — улучшенная репликация между кластерами
  • KRaft — упоминание нового режима без ZooKeeper

Семантика доставки сообщений

At-most-once

Потребитель фиксирует смещение до обработки или без надёжного повтора. Сообщение может потеряться, зато задержка минимальна; подходит для части метрик и технических логов.

At-least-once

Kafka повторит доставку, если не увидит подтверждённое смещение. Дубликаты возможны, поэтому обработчик должен быть идемпотентным.

Exactly-once

Kafka ограничивает повторные побочные эффекты через идемпотентного производителя и транзакционный API. Это гарантия обработки, а не магическое исчезновение всех повторов.

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

Наведите на компонент для подробностей или нажмите кнопку

Производители
Приложение 1
Приложение 2
Приложение 3
Кластер Kafka
B1
B2
B3
Топик: orders
P0
P1
P2
Группа потребителей
C1
← P0
C2
← P1, P2
Контроллер ZooKeeper / KRaft
Метаданные и координация
Производители / потребители
Кластер Kafka
Партиции
Брокеры

Репликация партиций

Лидер принимает записи, реплики подтягивают данные

Топик: orders(коэффициент репликации = 3)
Брокер 1
Лидер
Партиции:
P0 (лидер)
P1 (реплика)
P2 (реплика)
Брокер 2
Реплика
Партиции:
P0 (реплика)
P1 (лидер)
P2 (реплика)
Брокер 3
Реплика
Партиции:
P0 (реплика)
P1 (реплика)
P2 (лидер)
ISR (синхронные реплики):
Брокер 1
Брокер 2
Брокер 3
min.insync.replicas = 2
✓ Записи разрешены
Лидер партиции
Ведомая реплика
Активный брокер
Брокер со сбоем

Ключевые выводы для системного дизайна

  • Партиционирование — ключ к горизонтальному масштабированию. Выбор ключа партиционирования определяет распределение нагрузки и границы порядка.
  • Репликация обеспечивает отказоустойчивость. Список синхронных реплик показывает, какие копии достаточно догнали лидера, чтобы участвовать в подтверждении записи.
  • Группы потребителей позволяют масштабировать обработку. В одной группе одновременно активных потребителей не может быть больше, чем партиций.
  • Политика хранения определяет, как долго Kafka держит записи. Именно она задаёт пределы исторического прогона и восстановления потребителей.
  • Kafka Connect упрощает интеграцию с внешними системами через коннекторы-источники и коннекторы-приёмники без отдельного прикладного кода.

Связанные главы

Где найти книгу

Чтобы отмечать прохождение, включи трекинг в Настройки