Источник
Пост в Книжном кубе
Оригинальный обзор книги от 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.
Оригинал
ПереводИздания книги
Осень 2017 года — 11 глав, охватывающих основы Kafka, producers, consumers, администрирование и stream processing.
Конец 2021 года — расширенное издание с акцентом на облачные развёртывания и новые возможности платформы.
Ключевые концепции Kafka
Сообщения и пакеты
Базовые единицы данных в Kafka. Сообщения группируются в пакеты (batches) для эффективной передачи по сети.
Топики и партиции
Топики — логические каналы сообщений, разделённые на партиции для параллельной обработки и масштабирования.
Producers
Клиенты, записывающие сообщения в Kafka. Kafka ориентирована на писателей — высокая пропускная способность записи.
Consumers
Клиенты, читающие сообщения из Kafka. Consumer groups обеспечивают параллельную обработку и отказоустойчивость.
Связанная тема
Designing Data-Intensive Applications
Глубокий разбор потоковой обработки в главе 11
Рекомендуем
Streaming Data
Архитектура потоковых систем: от сбора до потребления данных
Структура книги (2nd Edition — 14 глав)
Meet Kafka
Введение в publish/subscribe messaging, история создания в LinkedIn, базовые концепции: messages, batches, schemas, topics, partitions, producers, consumers, brokers.
Managing Apache Kafka ProgrammaticallyNEW
AdminClient API: асинхронный интерфейс для управления топиками, конфигурациями, consumer groups, метаданными кластера. Leader election и reassigning replicas.
Installing Kafka
Установка и конфигурация брокеров, выбор hardware, настройка ZooKeeper/KRaft. Во 2-м издании — больше акцента на облачных развёртываниях.
Kafka Producers
Конфигурация producers, сериализация (Avro, JSON), partitioners, headers, interceptors, quotas и управление пропускной способностью.
Kafka Consumers
Consumer groups, partition assignment, offset management (auto-commit, sync, async), rebalance listeners, standalone consumers.
TransactionsNEW
Exactly-once semantics, transactional producer API, read_committed isolation, идемпотентность и атомарные операции записи.
Kafka Internals(под капотом)
Cluster membership, контроллер, репликация, ISR, request processing, физическое хранение, log segments и индексы.
Reliable Data Delivery
Гарантии доставки: at-least-once, at-most-once, exactly-once. Конфигурация producer (acks, retries), consumer и broker для надёжности.
Securing KafkaNEW
SSL/TLS encryption, SASL authentication (GSSAPI, PLAIN, SCRAM, OAUTHBEARER), authorization с ACLs, аудит и безопасность в production.
Building Data Pipelines
Kafka Connect: source и sink connectors, standalone и distributed mode, transformations, converters, dead letter queues.
Cross-Cluster Data Mirroring
MirrorMaker 2.0, multi-datacenter архитектуры (Active-Active, Active-Passive), репликация топиков и consumer offsets между кластерами.
Administering Kafka
Topic operations, consumer group management, partition reassignment, конфигурация для production, операции с кластером.
Monitoring Kafka
JMX metrics, критические метрики брокеров, producers и consumers. Under-replicated partitions, lag monitoring, инструменты мониторинга.
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 кластера
Наведите на компонент для подробностей или нажмите кнопку
Репликация партиций
Leader принимает записи, followers реплицируют
Ключевые выводы для System Design
- ▸Партиционирование — ключ к горизонтальному масштабированию. Выбор partition key определяет распределение нагрузки.
- ▸Репликация обеспечивает отказоустойчивость. ISR (In-Sync Replicas) гарантирует консистентность.
- ▸Consumer groups позволяют масштабировать обработку. Количество consumers ≤ количество партиций.
- ▸Retention policy определяет, как долго хранятся данные. Kafka может работать как лог-хранилище.
- ▸Kafka Connect упрощает интеграцию с внешними системами без написания кода (source и sink connectors).
