Системним адміністраторам
Для сисадмінів ми маємо окремий курс: 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