Apache Kafka для разработчиков (2022)
Автор: В. Севостьянов, А. БурыловКому подойдет курс?
В 2022 году навык и работы с Apache Kafka требуются более чем для 3000 вакансий (*по данным hh.ru)
Системным администраторам
Для сисадминов у нас есть отдельный курс: Apache Kafka База
Архитекторам
Kafka — решение многих архитектурных проблем. Подписка на события и надежная передача запросов между приложениями еще никогда не были такими простыми. После интенсива ты организуешь правильную event-driven архитектуру с помощью Kafka!
Разработчикам
Kafka даст понимание, каким образом мы можем организовать работу микросервисов и повысить общую надежность системы. Также мы поможем узнать, чем же Kafka отличается от других подобных систем и в чем ее преимущества.
Бизнес-кейсы, которые будем решать:
Проблема #1.
Периодически отваливается логистический шлюз, и пользователь получает ошибку при создании заказа в онлайн-магазине одежды. Расскажем, как отвязать логистический шлюз от создания заказа, чтобы они не были связаны напрямую.
Проблема #2.
Сервисы обмениваются сообщениями о событиях напрямую, и иногда по вине сети они не доставляются и пропадают. Объясним, что сделать, чтобы ничего не терять.
Проблема #3.
Пользователь создал заказ, а магазин отправил его в доставку, упаковал и отгрузил водителю. И только после этого онлайн-магазин узнал, что оплата не прошла. Научим, как совершать все действия в правильном порядке, чтобы заказ не высылался до подтверждения оплаты.
Рекомендованные программы и навыки:
Для прохождения интенсива тебе понадобится компьютер, на котором установлена и настроена среда разработки, git и docker. Желательно установить make.
Знание Java и/или Go стэка.
Программа обучения:
День 1 -
• 1. Введение
• 2. Определение терминов. Теория
Начнете безошибочно разбираться в терминологии
2.1. Нода, Датацентр, Кластер
2.2. ZooKeeper
2.3. Консумер, продусер, топик
2.4. Сообщение, ключ, значение
2.5. Партиции
• 3. Архитектура Кафка. Теория + практика
Научитесь писать простейшие клиенты, будете понимать внутреннюю архитектуру Кафки
3.1. Шардинг (партиционирование)
3.2. Репликация лидер-ведомый
3.3. Концепция указателей (смещений)
3.4. Буферная передача и задержки
• 4. Основы использования Кафка. Теория + практика
Научитесь работать со сложными протоколами и настроить приложение так, чтобы оно не развалилось в проде
4.1. Создание топиков
4.2. Сериализация сообщений
4.3. Настройки продюсера
4.4. Настройка консумера
4.5. Partition key: упорядочивание и чтение на клиенте
День 2 -
• 5. Алгоритмы на Kafka. Теория + практика
Научитесь строить архитектуру между микросервисами
5.1. Асинхронные сообщения
5.2. Подписка на события
5.3. Репликация в микросервисах
• 6. Транзакции с использованием Kafka. Теория + практика
Научитесь избегать распространенных проблем с данными при построении архитектуры
6.1. Only once и идемпотентность при записи в базу
6.2. Only once при копировании из топика в топик
6.3. Distributed transactions / Sagas
День 3 -
• 7. Событийно-ориентированная архитектура. Теория + практика
Начнете использовать все преимущества Kafka
7.1. Однонаправленная обработка событий
7.2. Вариант применения: event sourсing. Акторы
7.3. Работаем с индексом времени вставки
7.4. Расчет агрегатов на Kafka
• 8. Изнасилование Кафка (Kafka как база данных). Теория + практика
Поймете, как использовать Кафку в качестве СУБД и стоит ли это делать
8.1. Объединение старых значений ключа
8.2. Доступ к сообщениям в случайном порядке
8.3. Делаем fifo очередь
8.4. Очередь, отсортированная по времени получения aka шедуллер
У вас нет прав на просмотр ссылок, пожалуйста: Вход или Регистрация
Скачать:
Для просмотра скрытого контента необходимо Войти или Зарегистрироваться.