Описание курса:
Аккa является свободным инструментарием с открытым исходным кодом для быстрого и простого построения параллельных и распределенных приложений на платформе JVM. Akka поддерживает несколько моделей программирования для параллелизма, и придает особое значение параллелизму на основе модели актеров.
Реализация актеров Akka входит в состав стандартной библиотеки Scala с доступным API для Java. В этом тренинге мы научимся создавать масштабируемые распределенные приложения с Akka Java API.
Аудитория:
• Java-разработчики
Необходимая подготовка:
• Знание Java
Программа курса: Модуль 1. Введение
• Эволюция модели программирования
• Масштабирование
• Манифест Reactive
Модуль 2. Основные понятия
• Конкурентность и параллелизм
• Асинхронный и синхронный
• Блокирующий и неблокирующий
• Мертвая блокировка (deadlock), исчерпание (starvation), живая блокировка (live-lock)
• Состояние гонки
• Императивный и реактивный
Модуль 3. Архитектурные паттерны и принципы
• Единая ответственность
• Без разделения ресурсов
• Асинхронная передача сообщений
• Слабая связанность
• Параллели с микросервисной архитектурой
• Пример архитектуры - Web Crawler
• Практическое задание
Модуль 4. Модель акторов
• Модель акторов
• Системы акторов
• Паттерн ошибок ядра (Error Kernel Pattern)
• Контроль
• Пример (Drink Bar)
• Практика
Модуль 5. Akka Actor API
• Реализация акторов
• Нетипизированные акторы
• Пример оригинального нетипизированного актора
• Перенос оригинального нетипизированного актора в абстрактные акторы
• Запуск акторов
• Создание системы акторов
• Запуск актора требует создания реквизита (props)
• Именование акторов
• Пример: актор и его реквизит
• Ссылки на актора
• Ссылки на актора и жизненный цикл актора
• Ссылка на актора и путь актора
• Выбор актора
• Почтовый ящик для недоставленных писем
• Остановка акторов
• Стратегия супервайзера
• Дежурство у постели умирающего (Death Watch)
• Жизненный цикл актора
• Практика (Web Crawler с использованием Akka)
Модуль 6. Преднамеченности, завершающие этапы
• Разговоры с акторами
• Практика (паттерн Ask, завершающий этап)
• Web Crawler с преднамеченностями
• Практика (использование преднамеченностей для оптимизации Web Crawler)
Модуль 7. Балансировка нагрузки и масштабирование
• Диспетчеры
• Почтовые ящики
• Маршрутизация
• Специально обрабатываемые сообщения
• Практика (балансировка нагрузки и масштабирование для Web Crawler)
Модуль 8. Другие возможности и доступные модули
Окончательная цена указывается в договоре на обучение.