System Design Space

    Глава 95

    Обновлено: 9 февраля 2026 г. в 20:31

    Kafka: The Definitive Guide (short summary)

    Прогресс части0/21

    Источник

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

    Оригинальный обзор книги от Alexander Polomodov

    Читать пост

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

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

    Распределённая платформа потоковой обработки: producers, consumers, партиции, репликация, семантики доставки и Kafka Streams.

    Kafka: The Definitive Guide, 2nd Edition — оригинальная обложкаОригинал
    Apache Kafka. Потоковая обработка и анализ данных, 2-е издание — переводПеревод

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

    1st Edition

    Осень 2017 года — 11 глав, охватывающих основы Kafka, producers, consumers, администрирование и stream processing.

    2nd Edition

    Конец 2021 года — расширенное издание с акцентом на облачные развёртывания и новые возможности платформы.

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

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

    Базовые единицы данных в Kafka. Сообщения группируются в пакеты (batches) для эффективной передачи по сети.

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

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

    Producers

    Клиенты, записывающие сообщения в Kafka. Kafka ориентирована на писателей — высокая пропускная способность записи.

    Consumers

    Клиенты, читающие сообщения из Kafka. Consumer groups обеспечивают параллельную обработку и отказоустойчивость.

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

    Designing Data-Intensive Applications

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

    Читать обзор

    Рекомендуем

    Streaming Data

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

    Читать обзор

    Структура книги (2nd Edition — 14 глав)

    1

    Meet Kafka

    Введение в publish/subscribe messaging, история создания в LinkedIn, базовые концепции: messages, batches, schemas, topics, partitions, producers, consumers, brokers.

    2

    Managing Apache Kafka ProgrammaticallyNEW

    AdminClient API: асинхронный интерфейс для управления топиками, конфигурациями, consumer groups, метаданными кластера. Leader election и reassigning replicas.

    3

    Installing Kafka

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

    4

    Kafka Producers

    Конфигурация producers, сериализация (Avro, JSON), partitioners, headers, interceptors, quotas и управление пропускной способностью.

    5

    Kafka Consumers

    Consumer groups, partition assignment, offset management (auto-commit, sync, async), rebalance listeners, standalone consumers.

    6

    TransactionsNEW

    Exactly-once semantics, transactional producer API, read_committed isolation, идемпотентность и атомарные операции записи.

    7

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

    Cluster membership, контроллер, репликация, ISR, request processing, физическое хранение, log segments и индексы.

    8

    Reliable Data Delivery

    Гарантии доставки: at-least-once, at-most-once, exactly-once. Конфигурация producer (acks, retries), consumer и broker для надёжности.

    9

    Securing KafkaNEW

    SSL/TLS encryption, SASL authentication (GSSAPI, PLAIN, SCRAM, OAUTHBEARER), authorization с ACLs, аудит и безопасность в production.

    10

    Building Data Pipelines

    Kafka Connect: source и sink connectors, standalone и distributed mode, transformations, converters, dead letter queues.

    11

    Cross-Cluster Data Mirroring

    MirrorMaker 2.0, multi-datacenter архитектуры (Active-Active, Active-Passive), репликация топиков и consumer offsets между кластерами.

    12

    Administering Kafka

    Topic operations, consumer group management, partition reassignment, конфигурация для production, операции с кластером.

    13

    Monitoring Kafka

    JMX metrics, критические метрики брокеров, producers и consumers. Under-replicated partitions, lag monitoring, инструменты мониторинга.

    14

    Stream Processing

    Kafka Streams API: stateless и stateful операции, windowing, joins, KTables vs KStreams, exactly-once processing, тестирование.

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

    • AdminClient API — программное управление кластером
    • Transactions — exactly-once семантика и атомарные операции
    • Security — SSL/TLS, SASL, ACLs для production
    • MirrorMaker 2.0 — улучшенная cross-cluster репликация
    • KRaft — упоминание нового режима без ZooKeeper

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

    At-most-once

    Сообщение доставляется не более одного раза. Возможна потеря данных. Подходит для метрик и логов.

    At-least-once

    Сообщение доставляется минимум один раз. Возможны дубликаты. Стандартный режим Kafka.

    Exactly-once

    Сообщение доставляется ровно один раз. Требует idempotent producer и transactional API.

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

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

    Producers
    App 1
    App 2
    App 3
    Kafka Cluster
    B1
    B2
    B3
    Topic: orders
    P0
    P1
    P2
    Consumer Group
    C1
    ← P0
    C2
    ← P1, P2
    ZooKeeper / KRaft Controller
    Metadata & Coordination
    Producer/Consumer
    Kafka Cluster
    Partitions
    Brokers

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

    Leader принимает записи, followers реплицируют

    Topic: orders(replication factor = 3)
    Broker 1
    Leader
    Partitions:
    P0 (Leader)
    P1 (Follower)
    P2 (Follower)
    Broker 2
    Follower
    Partitions:
    P0 (Follower)
    P1 (Leader)
    P2 (Follower)
    Broker 3
    Follower
    Partitions:
    P0 (Follower)
    P1 (Follower)
    P2 (Leader)
    ISR (In-Sync Replicas):
    Broker 1
    Broker 2
    Broker 3
    min.insync.replicas = 2
    ✓ Writes allowed
    Leader partition
    Follower replica
    Active broker
    Failed broker

    Ключевые выводы для System Design

    • Партиционирование — ключ к горизонтальному масштабированию. Выбор partition key определяет распределение нагрузки.
    • Репликация обеспечивает отказоустойчивость. ISR (In-Sync Replicas) гарантирует консистентность.
    • Consumer groups позволяют масштабировать обработку. Количество consumers ≤ количество партиций.
    • Retention policy определяет, как долго хранятся данные. Kafka может работать как лог-хранилище.
    • Kafka Connect упрощает интеграцию с внешними системами без написания кода (source и sink connectors).

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