О чём курс
Этот тренинг поможет вам получить представление об архитектуре и функционировании Apache Kafka – платформы распределенной потоковой передачи событий с открытым исходным кодом. Вместе с тренером вы будете отправлять и получать сообщения из Java- и REST-клиентов, обсудите варианты конфигураций кластера и клиентов для достижения требуемых характеристик доставки сообщений (латентности, пропускной способности, сохранности и доступности).
Вы также рассмотрите настройку нескольких кластеров для одного приложения, поскольку это жизненно важно для достижения отказоустойчивости и повышения масштабируемости. Рассмотрите, как Kafka Connect позволяет решать общие задачи копирования данных между Kafka и внешними системами (СУБД, файловая система и др.). Узнаете, почему во многих случаях хорошим способом создания быстрых и устойчивых решений для потоковой обработки является Kafka Streams.
Цели
Во время обучения вы научитесь:
Понимать архитектуру Kafka.
Разбираться в развертывании и настройке Kafka.
Использовать REST-доступ к Kafka.
Разрабатывать Java-клиентов для Kafka.
Проектировать архитектуры из нескольких кластеров.
Использовать инструменты Kafka Connect.
Создавать приложения Kafka Streams.
Целевая аудитория
Разработчики, архитекторы, дата-инженеры.
Предварительная подготовка
Опыт разработки на Java от 3 месяцев.
Для кого
Разработчик
Архитектор ПО
Data Scientist
Улучшаемые навыки
Понимание архитектуры Kafka
Создание и управление темами
Работа с производителями и потребителями
Обработка потоковых данных
Мониторинг и управление производительностью
Расписание курсов
Программа курса
Что такое Kafka.
Примеры удачного и неудачного использования Kafka.
Kafka и база данных: сходства и различия.
Kafka и прямые конкуренты.
Kafka и Apache Pulsar.
Архитектура хранилища Kafka: Брокеры, Темы, Разделы, Сегменты, Реплики.
Архитектура кластера Kafka: Zookeeper, партиционирование, главные и ведомые узлы репликации, ISR.
Клиенты и API.
02
Настройка Кластера (практика – 1 ч)
Практика 2.1: запуск кластера Kafka с помощью Docker.
Установка Zookeeper.
Установка брокеров Kafka.
03
Инструменты Kafka и управление данными – теория и демо (1 ч.)
Самые популярные инструменты Kafka.
Демо 3.1: Инструменты Kafka.
Практики KafkaOps.
04
Разработка приложений на Java – теория (2 ч.), практика (1 ч.)
Kafka Producer API: основы.
Практика 4.1: Отправка одного сообщения.
Kafka Consumer API: основы, группы потребителей.
Практика 4.2: Один получатель.
Практика 4.3: Несколько получателей в одной группе.
Дополнительные возможности: Пакеты, Повторы, Идемпотентность, Транзакции, Перебалансировка Групп Потребителей.
Практика 4.4: Транзакционный Отправитель.
Практика 4.5: Отправка и получение в транзакции.
Практика 4.6: Замороженный потребитель.
Практика 4.7: Медленный потребитель.
05
Внешний доступ к кластеру Kafka – теория (2 ч.), практика (2 ч.)
Безопасность: SSL, SASL, Kerberos.
REST Proxy: отправка и получение сообщений в форматах JSON, бинарные и Авро файлы.
Практика 5.1: доступ через REST Proxy.
Schema Registry: реестр схем.
Практика 5.2: Schema Registry.
06
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
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
Эксплуатация и мониторинг – теория (1 ч.), практика (1 ч.)
Цели по производительности и режимы выполнения.
Zookeeper: конфигурация, автономный режим и режим кворума, CLI.
Управление и мониторинг кластера.
Практика 8.1: Мониторинг кластера Kafka с помощью Prometheus.
Практика 8.2: Измерение производительности.
09
Мульти-кластеры – теория (1 ч.), практика (1 ч.)
Различные мультикластреные архитектуры MirrorMaker.
Практика 9.1: Использование MirrorMaker для синхронизации кластеров.
Confluence Replicator.
10
Итого: теория – 14 ч. (58%), практика – 10 ч. (42%)
Чему вы научитесь
01
Научитесь основным компонентам архитектуры Kafka, включая брокеры, темы, партиции и консумеры
02
Освоите методы создания и настройки тем в Kafka, включая управление партициями и репликацией
03
Научитесь создавать производителей (producers) и потребителей (consumers) сообщений в Kafka
04
Освоите методы обработки потоковых данных с использованием Kafka Streams
05
Научитесь использовать инструменты мониторинга
Курс проводят
Брейман Александр
Эксперт в области разработки и архитектуры ПО
Middle
О тренере
Александр занимается разработкой учебных программ, чтением лекций, проведением семинаров, практических и лабораторных работ. Под его руководством уже не один десяток специалистов успешно защитили выпускные квалификационные работы бакалавра и магистерские диссертации.
Среди его кейсов работа в ЗАО «ТИТАН МЕТА», Московском государственном университете приборостроения и информатики, Национальном исследовательском университете «Высшая школа экономики» и Luxoft Training.
Курсы и сертификаты
Александр является членом организаций:
- IEEE, IEEE Computer Society (Institute of Electrical and Electronics Engineers / Институт инженеров электротехники и электроники).
- ACM, ACM SIGMOD (Association for Computing Machinery / Ассоциация вычислительной техники).