Разбираемые темы:
1. Обзор (теория – 1 ч)
Что такое Kafka.
Примеры удачного и неудачного использования Kafka.
Kafka и база данных: сходства и различия.
Kafka и очередь сообщений: сходства и различия.
Архитектура хранилища Kafka: Брокеры, Темы, Разделы, Сегменты, Реплики.
Архитектура кластера Kafka: Zookeeper, партиционирование, главные и ведомые узлы репликации, ISR.
Клиенты и API.
2. Настройка Кластера (практика – 1 ч)
Практика 2.1: запуск кластера Kafka с помощью Docker.
Установка Zookeeper.
Установка брокеров Kafka.
3. Разработка приложений на Java (теория – 2,5 ч, практика – 2,5 ч)
Kafka Producer API: основы.
Практика 3.1: Отправка одного сообщения.
Практика 3.2: Отправка нескольких сообщений.
Практика 3.3: Отправка нескольких сообщений с явным партиционированием.
Практика 3.4: Отправка сообщений без ключей.
Kafka Consumer API: основы, группы потребителей.
Практика 3.5: Один получатель.
Практика 3.6: Несколько получателей в одной группе.
Дополнительные возможности: Пакеты, Повторы, Идемпотентность, Транзакции, Перебалансировка Групп Потребителей.
Практика 3.7: Отправитель без пакетов и повторов.
Практика 3.8: Идемпотентный Отправитель.
Практика 3.9: Транзакционный Отправитель.
Практика 3.10: Отправка и получение в транзакции.
Практика 3.11: Получение-обработка-отправка в транзакции.
4. Внешний доступ к кластеру Kafka (теория – 2 ч, практика – 2 ч)
Безопасность: SSL, SASL, Kerberos.
REST Proxy: отправка и получение сообщений в форматах JSON, бинарные и Авро файлы.
Практика 4.1: доступ через REST Proxy.
Schema Registry: реестр схем.
Практика 4.2: использование REST Proxy со Schema Registry.
5. Обслуживание и мониторинг (теория – 1 ч, практика – 1 ч)
Настройка кластера под разные цели.
Zookeeper: конфигурация, автономный режим и режим кворума, CLI.
Практика 5.1: Мониторинг кластера Kafka с помощью Prometheus.
6. Несколько кластеров (теория – 1 ч, практика – 1 ч)
Для чего могут понадобиться несколько кластеров в Kafka?
MirrorMakerAccess.
Практика 6.1: Использование MirrorMaker для синхронизации кластеров.
Confluence Replicator.
7. Kafka Connect (теория – 2 ч, практика – 2 ч)
Архитектура Kafka Connect.
Приемники данных Kafka Connect.
Практика 7.1: Файловый приемник FileStream.
Практика 7.2: Приемник JDBC.
Источники данных Kafka Connect.
Практика 7.3: Источник FileStream.
Практика 7.4: Источник JDBC.
8. Основы Kafka Streams (теория – 2 ч, практика – 2 ч)
Kafka Streams: DSL, API, StreamBuilder, создание и реализация топологии.
Демонстрация 8.1: Реализация топологии Streams.
Демонстрация 8.2: Создание приложения Streams с помощью StreamBuilder.
Устройство Kafka Streams: многопоточность, несколько экземпляров и задач.
Схемы данных в Kafka: сериализация в JSON-схемы, схемы Avro, реестр схем, эволюция схем.
Демонстрация 8.3: Использование схем JSON.
Обработка с сохранением состояния: хранилище состояний, отказоустойчивость для хранилищ состояний.
KTable: Потоки обновления данных, кэширование, скорость выдачи, агрегация.
Окна в потоках: метки времени, плавающие, прыгающие, сеансовые.
Соединение: поток с потоком, KTable с KTable, поток с KTable.