JVA-083 Микросервисы на Java: практический подход
Описание курса
Курс "Микросервисы на Java" предлагает полное погружение в мир микросервисной архитектуры и ее реализацию на языке программирования Java. Слушатели изучат основные концепции, принципы и компоненты микросервисов, а также получат навыки проектирования, разработки и деплоя микросервисных приложений. Курс включает в себя как теоретическую, так и практическую части, чтобы слушатели могли усвоить материал и применить его на практике. В результате окончания курса слушатели получат не только понимание микросервисной архитектуры, но и готовность к созданию собственных микросервисных приложений на языке Java.
Модуль 1
- Что такое микросервисы и как они связаны с Java?
- Преимущества и недостатки микросервисной архитектуры
- Основные принципы микросервисов
Модуль 2
- Проектирование микросервисов на Java
- Декомпозиция на основе принципов Объектно-Ориентированного Дизайна
- Декомпозиция на основе принципов Бизнес-возможностей
- Определение границ между сервисами
- Использование Domain-Driven Design в микросервисной архитектуре
Модуль 3
- Протоколы взаимодействия микросервисов на Java
- Синхронное взаимодействие между микросервисами с помощью REST API
- Использование message brokers для обмена данными между сервисами на Java
Модуль 4
- Хранение данных в микросервисах
- Различные подходы к управлению данными
- Стратегии персистентности в микросервисах
Модуль 5
- Общая База Данных
- База Данных на Сервис
- Схема на Сервис
Модуль 6
- CAP теорема
- Eventual consistency
- Распределенные транзакции
- Паттерн SAGA
- Паттерн Event Sourcing
- Паттерн CQRS
- Паттерн Outbox
- Миграции данных с помощью Liquibase
Модуль 7
- Использование Docker для контейнеризации микросервисов
- Использование Kubernetes для деплоя и масштабирования микросервисов
Модуль 8
- Анализ предметной области и декомпозиция домена на поддомены, выделение микросервисов
- Реализация микросервисов как независимых Spring Boot приложений
- Реализация синхронной коммуникации между микросервисами с использованием REST API и OpenFeign
- Реализация асинхронного обмена сообщениями между микросервисами с применением Kafka и Stream Cloud Stream.
- Практика реализации распределенных транзакций с помощью SAGA
- Практика реализации паттерна Outbox для надежной доставки сообщений
- Практика миграции данных с помощью Liquibase
- Контейнеризация микросервисов на Java с использованием Docker
- Развертывание микросервисов в Kubernetes-кластере.