О чём курс
Этот тренинг поможет вам получить представление об архитектуре и функционировании Apache Kafka – платформы распределенной потоковой передачи событий с открытым исходным кодом. Вместе с тренером вы будете отправлять и получать сообщения из Java- и REST-клиентов, обсудите варианты конфигураций кластера и клиентов для достижения требуемых характеристик доставки сообщений (латентности, пропускной способности, сохранности и доступности). Вы также рассмотрите настройку нескольких кластеров для одного приложения, поскольку это жизненно важно для достижения отказоустойчивости и повышения масштабируемости. Рассмотрите, как Kafka Connect позволяет решать общие задачи копирования данных между Kafka и внешними системами (СУБД, файловая система и др.). Узнаете, почему во многих случаях хорошим способом создания быстрых и устойчивых решений для потоковой обработки является Kafka Streams.
Цели
Во время обучения вы научитесь:
- Понимать архитектуру Kafka.
- Разбираться в развертывании и настройке Kafka.
- Использовать REST-доступ к Kafka.
- Разрабатывать Java-клиентов для Kafka.
- Проектировать архитектуры из нескольких кластеров.
- Использовать инструменты Kafka Connect.
- Создавать приложения Kafka Streams.
Целевая аудитория
Разработчики, архитекторы, дата-инженеры.
Предварительная подготовка
Опыт разработки на Java от 3 месяцев.
Темы курса
01
1. Обзор – теория (2 ч.)
- Что такое Kafka.
- Примеры удачного и неудачного использования Kafka.
- Kafka и база данных: сходства и различия.
- Kafka и прямые конкуренты.
- Kafka и Apache Pulsar.
- Архитектура хранилища Kafka: Брокеры, Темы, Разделы, Сегменты, Реплики.
- Архитектура кластера Kafka: Zookeeper, партиционирование, главные и ведомые узлы репликации, ISR.
- Клиенты и API.
02
2. Настройка Кластера (практика – 1 ч)
- Практика 2.1: запуск кластера Kafka с помощью Docker.
- Установка Zookeeper.
- Установка брокеров Kafka.
03
3. Инструменты Kafka и управление данными – теория и демо (1 ч.)
- Самые популярные инструменты Kafka.
- Демо 3.1: Инструменты Kafka.
- Практики KafkaOps.
04
4. Разработка приложений на Java – теория (2 ч.), практика (1 ч.)
- Kafka Producer API: основы.
- Практика 4.1: Отправка одного сообщения.
- Kafka Consumer API: основы, группы потребителей.
- Практика 4.2: Один получатель.
- Практика 4.3: Несколько получателей в одной группе.
- Дополнительные возможности: Пакеты, Повторы, Идемпотентность, Транзакции, Перебалансировка Групп Потребителей.
- Практика 4.4: Транзакционный Отправитель.
- Практика 4.5: Отправка и получение в транзакции.
- Практика 4.6: Замороженный потребитель.
- Практика 4.7: Медленный потребитель.
05
5. Внешний доступ к кластеру Kafka – теория (2 ч.), практика (2 ч.)
- Безопасность: SSL, SASL, Kerberos.
- REST Proxy: отправка и получение сообщений в форматах JSON, бинарные и Авро файлы.
- Практика 5.1: доступ через REST Proxy.
- Schema Registry: реестр схем.
- Практика 5.2: Schema Registry.
06
6. Kafka Streams и KSQL – теория (2 ч.), практика (2 ч.)
- Kafka Streams: DSL, API, StreamBuilder, создание и реализация топологии.
- Устройство Kafka Streams: многопоточность, несколько экземпляров и задач.
- Практика 6.1: Реализация потоков без сохранения состояния.
- Обработка с сохранением состояния: хранилище состояний, отказоустойчивость для хранилищ состояний.
- Практика 6.2: Агрегация в Kafka Streams.
- KTable: Потоки обновления данных, кэширование, скорость выдачи, агрегация.
- Окна в потоках: метки времени, плавающие, прыгающие, сеансовые.
- Соединение: поток с потоком, KTable с KTable, поток с KTable.
- Практика 6.3: Соединение потоков и таблиц.
- KSQL: Потоки без программирования.
- KSQL Серверная архитектура.
- Практика 6.4: Реализация потоков без сохранения состояния в KSQL.
- Практика 6.5: Агрегация в KSQL.
- Практика 6.6: Соединение в KSQL.
07
7. Kafka Connect – теория (2 ч.), практика (2 ч.)
- Архитектура Kafka Connect.
- Источники Kafka Connect.
- Практика 7.1: JDBC Source Connector (postgres).
- Практика 7.2: JDBC Source Connector (postgres) с ключами.
- Kafka Connect Sinks.
- Практика 7.3: JDBC Sink Connector (postgres).
- Практика 7.4: JDBC Sink Connector (postgres) с ключами.
08
8. Эксплуатация и мониторинг – теория (1 ч.), практика (1 ч.)
- Цели по производительности и режимы выполнения.
- Zookeeper: конфигурация, автономный режим и режим кворума, CLI.
- Управление и мониторинг кластера.
- Практика 8.1: Мониторинг кластера Kafka с помощью Prometheus.
- Практика 8.2: Измерение производительности.
09
9. Мульти-кластеры – теория (1 ч.), практика (1 ч.)
- Различные мультикластреные архитектуры
MirrorMaker.
- Практика 9.1: Использование MirrorMaker для синхронизации кластеров.
- Confluence Replicator.
10
Итого: теория – 14 ч. (58%), практика – 10 ч. (42%)
Ведущий курса
Кутчер Сергей
Эксперт в области DevOps