О чём курс
Этот тренинг поможет вам получить представление об архитектуре и функционировании Apache Kafka – платформы распределенной потоковой передачи событий с открытым исходным кодом. Вместе с тренером вы будете отправлять и получать сообщения из Java- и REST-клиентов, обсудите варианты конфигураций кластера и клиентов для достижения требуемых характеристик доставки сообщений (латентности, пропускной способности, сохранности и доступности).
Вы также рассмотрите настройку нескольких кластеров для одного приложения, поскольку это жизненно важно для достижения отказоустойчивости и повышения масштабируемости. Рассмотрите, как Kafka Connect позволяет решать общие задачи копирования данных между Kafka и внешними системами (СУБД, файловая система и др.). Узнаете, почему во многих случаях хорошим способом создания быстрых и устойчивых решений для потоковой обработки является Kafka Streams.
Цели
Во время обучения вы научитесь:
Понимать архитектуру Kafka.
Разбираться в развертывании и настройке Kafka.
Использовать REST-доступ к Kafka.
Разрабатывать Java-клиентов для Kafka.
Проектировать архитектуры из нескольких кластеров.
Использовать инструменты Kafka Connect.
Создавать приложения Kafka Streams.
Целевая аудитория
Разработчики, архитекторы, дата-инженеры.
Предварительная подготовка
Опыт разработки на Java от 3 месяцев.
Для кого
Разработчик
Архитектор ПО
Data Engineer
Улучшаемые навыки
Apache Kafka
Event Streaming
распределенная стриминговая платформа
Java
REST
KSQL
Kafka Connect
Kafka Streams
Docker
Zookeeper
SSL
SASL
Kerberos
Инструменты
Docker
Kafka
PostgreSQL
Prometheus
Zookeeper
KSQL
Расписание курсов
Программа курса
Что такое Kafka.
Примеры удачного и неудачного использования Kafka.
Kafka и база данных: сходства и различия.
Kafka и прямые конкуренты.
Kafka и Apache Pulsar.
Архитектура хранилища Kafka: Брокеры, Темы, Разделы, Сегменты, Реплики.
Архитектура кластера Kafka: Zookeeper, партиционирование, главные и ведомые узлы репликации, ISR.
Клиенты и API.
Практика 2.1: запуск кластера Kafka с помощью Docker.
Установка Zookeeper.
Установка брокеров Kafka.
03
Инструменты Kafka и управление данными
Самые популярные инструменты Kafka.
Демо 3.1: Инструменты Kafka.
Практики KafkaOps.
04
Разработка приложений на Java
Kafka Producer API: основы.
Практика 4.1: Отправка одного сообщения.
Kafka Consumer API: основы, группы потребителей.
Практика 4.2: Один получатель.
Практика 4.3: Несколько получателей в одной группе.
Дополнительные возможности: Пакеты, Повторы, Идемпотентность, Транзакции, Перебалансировка Групп Потребителей.
Практика 4.4: Транзакционный Отправитель.
Практика 4.5: Отправка и получение в транзакции.
Практика 4.6: Замороженный потребитель.
Практика 4.7: Медленный потребитель.
05
Внешний доступ к кластеру Kafka
Безопасность: SSL, SASL, Kerberos.
REST Proxy: отправка и получение сообщений в форматах JSON, бинарные и Авро файлы.
Практика 5.1: доступ через REST Proxy.
Schema Registry: реестр схем.
Практика 5.2: Schema Registry.
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.
Архитектура 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
Эксплуатация и мониторинг
Цели по производительности и режимы выполнения.
Zookeeper: конфигурация, автономный режим и режим кворума, CLI.
Управление и мониторинг кластера.
Практика 8.1: Мониторинг кластера Kafka с помощью Prometheus.
Практика 8.2: Измерение производительности.
Различные мультикластреные архитектуры MirrorMaker.
Практика 9.1: Использование MirrorMaker для синхронизации кластеров.
Confluence Replicator.
10
Итого на курс 24 часов: теория – 14ч ( 58%), практика 10– ч ( 42%)
Чему вы научитесь
01
Запускать и настраивать кластер Kafka с тремя узлами
02
Разрабатывать Java-клиентов для Kafka
03
Использовать KSQL для создания потоков без программирования
04
Конфигурировать Kafka Connect для интеграции с внешними системами
05
Мониторить и оптимизировать производительность кластера Kafka
06
Создавать транзакционные приложения с использованием Kafka
Курс проводят
Душко Александр
Cпециалист в области разработки ПО
О тренере
Архитектор, ведущий разработчик с многолетним опытом. За свою карьеру успел поработать во многих компаниях и разных странах. Сильные стороны: архитектура, глубокое понимание процесса разработки, знания различных языков программирования и фреймворков.
12 лет профессионального опыта в программировании, с постепенным увеличением ответственности в проектировании и разработке корпоративных и научных приложений на различных платформах и в различных средах.
9 лет в системной архитектуре - ведение проектов от начала до конца, обеспечение надежного и масштабируемого дизайна.
Более 6 лет международной работы и взаимодействия с глобальными распределенными командами.