Схема микросервисов
Список используемых технологий:
- Spring Boot 3
- Docker / Docker Compose
- Kafka
- Kafka Connect + Debezium Postgres Connector
- Avro - сериализация данных для Kafka
- Confluent Schema Registry - хранение схем данных для Kafka
- Redis - хранение сессий + rate limiting
- KeyCloak - сервер автризации и аутентификации
- Spring MVC, REST API - веб императивный стек
- Project Reactor, Spring WebFlux, REST API - веб реактивный стек
- R2DBC - доступ к данным по реактивному драйверу
- Postgres - основная БД
- Flyway - инструмент миграций БД
- Spring Data Jpa / Hibernate - ORM, доступ к данным
- Spring Cloud Gateway - единая точка входа в приложение
- Spring Cloud Config Server - хранение конфигураций
- Spring Cloud Netflix Eureka (Service Discovery) - обнаружение микросервисов
- Spring Cloud Resilience4j - rate limiting, circuit breaker, retry
- TestContainers - тестирование
- WireMock - интеграционное тестирование
- MockWebServer (OkHttp) - интеграционное тестирование
- Github Actions - простые пайплайны CI
- OAuth 2.0 - авторизация
- OIDC - аутентификация
- Micrometer - инструментация микросервисов, чтобы они могли отдавать метрики
- Prometheus - сбор, аггрегация и хранение метрик
- Grafana - визуализация трассировок, метрик, логов
- Loki - распределенное логирование
- Zipkin - распределенные трассировки
- Tempo - распределенные трассировки, после Zipkin в образовательных целях
Все технологии, которые не входят в курс стажировки TopJava, в том объеме,
который нужен на курсе, даются с азов
который нужен на курсе, даются с азов
Ранняя цена по 9 сентября + курс TopKotlin в подарок!
Вы получаете:
- Доступ ко всем материалам занятий (пошаговый текстовой туториал)
- Репозиторий и код проекта (обновление патчами или скачать весь проект)
- Практика и примеры применения всех перечисленных технологий
- Домашние задания для самостоятельного выполнения с разбором решения (без проверки)
- Поддержка в специальной группе Telegram
- Навыки и знания в разработке микросервисов, востребованные работодателем
- Огромный стек технологий в резюме и группа проектов в портфолио
- Повышенную ценность, как Java-разработчик
Максимально выгодный пакет по 9 сентября!
Стажировка TopJava + Микросервисы (CloudJava)
Стажировка Enterprise Java-разработчика (TopJava) без проверки
Микросервисы, Docker, Kafka, Spring Cloud, реактивный стек без проверки
Стажировка TopJava с проверкой и ревью выпускного проекта
Микросервисы, Docker, Kafka, Spring Cloud, реактивный стек без проверки
Полный пакет по минимальной цене
Стажировка TopJava + MasterJava + CloudJava
Стажировка Enterprise Java-разработчика (TopJava) без проверки
Микросервисы, Docker, Kafka, Spring Cloud, реактивный стек без проверки
Многомодульный Maven, многопоточность, JavaEE (MasterJava) без проверки
Стажировка TopJava с проверкой и ревью выпускного проекта
Микросервисы, Docker, Kafka, Spring Cloud, реактивный стек без проверки
Многомодульный Maven, многопоточность, JavaEE (MasterJava) без проверки
Всем участникам предоставляются:
Поддержка преподавателя, ответы на вопросы и обсуждение занятий и домашних заданий в группе участников.
Общение с нашими выпускниками в
специальной группе Slack и канале Telegram
Свежие вакансии для начинающих разработчиков, помощь с Java, отзывы о работодателях, события IT, интересные видео...
Доступ ко всем материалам навсегда, без привязки ко времени и местоположению
Все видео доступны для просмотра онлайн и скачивания в любое время и без ограничения по срокам. Записи разбиты по темам и тщательно отредактированы. Большое количество подобранных ресурсов для углубления в детали.
После успешного прохождения курса – сертификат об окончании
Специальные цены участника на следующие проекты
Способы оплаты:
Для платежа в UAH, BYN, MDL, EUR и USD пишите в мессенджер
Возврат стоимости неактивированных курсов (при покупке пакета) и непроверенных уроков в течение месяца со дня оплаты
Программа:
- Назначение и задачи проекта
- Манифест от Heroku “12-факторное приложение”
- Паттерны проектирования микросервисной архитектуры
- Схема и стек приложения
- Назначение и API микросервисов
- Работа с проектом
- Работа с Gradle
- Установка Docker
- Инициализация приложения
- Разработка слоя данных (открытый урок)
- Миграция DB c Flyway
- JPA-модель данных
- ДЗ-1: создание JPA-модели
- Создание репозитория
- Тестирование
- ДЗ-2.1: добавление тестов
- ДЗ-2.2: реализация кастом-репозитория, используя Criteria API
- Подготовка окружения. Docker Compose
- Конфигурация и запуск приложения
- Разработка сервисного слоя
- Создание сервиса и DTO
- Тестирование
- ДЗ-3.1: добавление тестов
- ДЗ-3.2: реализация сервиса
- Разработка слоя REST-контроллеров
- ДЗ-4: реализация контроллера
- Валидация
- Обработка HTTP API ошибок
- OpenAPI документация
- Тестирование через WebTestClient
- ДЗ-5: добавление тестов
- Кэширование Spring-контекста
- Контейнеризация приложения
- Создание образа через Dockerfile
- Запуск образа приложения
- Volumes. Подключение к контейнеру
- Контейнеризация через Gradle и Cloud Native Buildpacks
- Github Actions и рефакторинг
- Github Actions
- Дополнение API и рефакторинг
- Назначение, API, инициализация приложения
- Реактивный стек (Spring WebFlux/Project Reactor, R2DBC)
- Разработка слоя данных
- Миграция DB c Flyway
- ДЗ-1: создание JPA-модели и репозитория
- Тестирование
- ДЗ-2: добавление тестов
- Подготовка Docker/Docker Compose окружения
- Разработка сервисного слоя
- Создание сервиса и DTO
- Реализация неблокирующего MenuClient
- Сортировка и пагинация
- Тестирование
- Тестирование MenuClient, используя OkHttp MockWebServer
- Выносим инициализацию тестовой базы в BaseTest
- Выносим работу с Wiremock в BaseIntegrationTest
- Тестирование MenuOrderService
- ДЗ-3.1: добавление тестов
- ДЗ-3.2: реализация сервиса
- Создание сервиса и DTO
- Разработка слоя REST-контроллеров
- Подготовка к реализации контроллера
- Обработка HTTP API ошибок для WebFlux
- Тестирование через WebTestClient
- ДЗ-4.1: добавление тестов
- ДЗ-4.2: реализация контроллера
- Контейнеризация приложения и GitHub Actions
- Создание образа
- Запуск сервисов с помощью docker-compose
- Тестирование с помощью утиллиты curl и Postman
- Выполнение запросов через curl
- Выполнение запросов через Postman
- GitHub Actions
- Назначение, API, инициализация приложения
- Проблема расчета рейтинга блюда. Биномиальное распределение
- Разработка слоя данных
- Миграция DB c Flyway. Функции и триггеры в Postgres
- ДЗ-1: создание JPA-модели
- Создание репозиториев и тестирование
- ДЗ-2.1: добавление тестов
- ДЗ-2.2: реализация RatingRepository через JPQL и нативный SQL
- Подготовка Docker/Docker Compose окружения
- Разработка сервисного слоя
- Создание интерфейсов, маппера, DTO
- Тестирование
- ДЗ-3.1: добавление тестов
- ДЗ-3.2: реализация сервисов
- Разработка слоя REST-контроллеров
- Подготовка к реализации контроллера
- Тестирование через WebTestClient
- ДЗ-4.1: добавление тестов
- ДЗ-4.2: реализация контроллера
- Контейнеризация приложения и GitHub Actions
- Создание образа
- Запуск сервисов с помощью docker-compose
- Тестирование через Postman
- GitHub Actions
- Назначение, API, инициализация приложения
- Подготовка DTO
- Реализация клиента для связи с внешними сервисами
- Конфигурирование и общая логика
- Реализация клиентов
- Реализация Menu Service Client
- Заготовка для Review Service Client
- Resilience4j: добавляем CircuitBreaker и Retry
- CircuitBreaker
- Retry
- Тестирование
- ДЗ-1.1: добавление тестов
- ДЗ-1.2: реализация
ReviewsClient
- Разработка слоя REST-контроллеров
- OpenAPI документация. ДЗ-2
- Обработка HTTP API ошибок для реактивного стека
- Тестирование. ДЗ-3
- Контейнеризация приложения и Github Actions
Материалы курса готовы, идет ревью и оформление. Планируемый срок завершения оформления - в течении 2-х месяцев, к ноябрю
5. Config Server
6. Интеграция с Kafka часть 1
(паттерн Transactional Outbox)
(паттерн Transactional Outbox)
7. Интеграция с Kafka часть 2
(Kafka Producer, Kafka Consumer). Dispatcher Service
(Kafka Producer, Kafka Consumer). Dispatcher Service
8. Service Discovery (Netflix Eureka)
9. Единая точка входа в приложение Gateway Server
10. Security, Authorization и Authentication (Keycloak)
11. Observability и Monitoring