Java: Spring Boot, gRPC, Kafka. Микросервисы на практике

Бэкенд интернет-магазина из четырёх микросервисов на Java 25 и Spring Boot 4.1. Три архитектуры, MongoDB, PostgreSQL, MySQL и Redis, gRPC и Kafka, Docker Compose, метрики в Prometheus и Grafana, нагрузка k6 и управление контейнерами в Portainer.

Чему вы научитесь

  • Строить сервисы со слоистой архитектурой, вертикальными срезами и чистой архитектурой
  • Разделять команды и запросы по CQRS и создавать собственный Dispatcher
  • Разрабатывать REST API с пагинацией, фильтрацией, валидацией и обработкой ошибок
  • Работать с MongoDB, PostgreSQL и MySQL через Spring Data, JPA и JdbcClient, применять миграции Flyway
  • Хранить корзину в JSONB, применять пессимистическую блокировку и разбирать инвалидацию кэша Redis
  • Описывать protobuf-контракты и связывать сервисы по gRPC
  • Передавать события через Kafka в формате Avro и использовать Schema Registry
  • Обрабатывать повторы событий, настраивать повторные попытки и DLT
  • Собирать Docker-образы и запускать систему в контурах dev и prod через Docker Compose
  • Подключать метрики приложений к Prometheus и настраивать дашборды JVM, HTTP и gRPC в Grafana
  • Проверять поведение системы под нагрузкой с помощью k6 и управлять контейнерами через Portainer

О курсе

Практический курс по разработке микросервисов на Java. Проект курса — бэкенд интернет-магазина из четырёх сервисов: каталог товаров, корзина, промоакции и заказы. На одном проекте рассматриваем три архитектуры, работу с разными хранилищами, синхронное и асинхронное взаимодействие сервисов.

!!!

Четыре сервиса

  • Catalog — каталог товаров. Слоистая архитектура, MongoDB и Spring Data. REST API для товаров, брендов и категорий, пагинация, фильтрация, сортировка, MapStruct и документация API в Swagger UI.
  • Basket — корзина покупателя. Вертикальные срезы, PostgreSQL с JSONB, команды и запросы, валидация и обработка ошибок. Потеря обновлений, пессимистическая блокировка, кэш Redis, инвалидация и TTL, переход на Spring Cache.
  • Promotion — промоакции и скидки. MySQL, JdbcClient и gRPC API. Protobuf-контракт, получение, создание, удаление и обновление промоакций, серверный интерсептор логирования.
  • Checkout — заказы. Чистая архитектура, агрегат заказа, порты и адаптеры. PostgreSQL, JPA-маппинг, миграции Flyway, аудит сущностей, REST API и создание заказа из события Kafka.

Взаимодействие сервисов

При сохранении корзины Basket запрашивает скидки у Promotion по gRPC. При оформлении корзины публикует событие OrderSubmittedEvent в Kafka. Checkout получает событие и создаёт заказ.

  • Синхронное взаимодействие микросервисов по gRPC: контракт и генерация кода, сервер и клиент, канал и стаб, обработка ошибок, гонка инициализации канала.
  • Асинхронное взаимодействие микросервисов через брокер Kafka: producer и consumer, Avro, Schema Registry, обработка повторного сообщения, повторные попытки и DLT для событий с ошибками.

Запуск и эксплуатация

  • Docker Compose: контур разработки с инфраструктурой и контур prod с приложениями в собранных Docker-образах.
  • Prometheus и Grafana: сбор метрик Catalog и Promotion, настройка источника данных, загрузка дашбордов из файлов, показатели JVM, HTTP-запросов и gRPC-вызовов.
  • k6: сценарии нагрузки на каталог и сохранение корзины, проверки ответов и пороги, сопоставление результатов нагрузки с метриками приложений.
  • Portainer: просмотр состояния контейнеров, запуск и остановка, логи и статистика через браузер.

Стек проекта

Java 25, Spring Boot 4.1, Gradle, Spring Data MongoDB, JPA, JdbcClient, Flyway, MapStruct, Bean Validation, Spring Cache, gRPC и protobuf, Spring Kafka, Avro, Schema Registry, Actuator и Micrometer.

MongoDB, PostgreSQL, MySQL, Redis, Kafka, Docker Compose, Prometheus, Grafana, k6 и Portainer.

 

Для кого этот курс

Для слушателей, которые уверенно знают Java, знакомы со Spring Boot и хотят собрать систему из нескольких взаимодействующих сервисов. — Вы уже пишете REST API и хотите пройти путь от отдельных сервисов до общего сценария: корзина, скидка, оформление и создание заказа. — Хотите увидеть слоистую архитектуру, вертикальные срезы и чистую архитектуру на одном проекте. — Планируете работать с gRPC, Kafka, Redis и разными базами данных и хотите освоить их на связанном примере. — Хотите дополнить разработку API сборкой Docker-образов, метриками, нагрузочными сценариями и управлением контейнерами. Опыт разработки микросервисов заранее не требуется.

Начальные требования

  • Уверенное знание Java: классы и интерфейсы, дженерики, коллекции, лямбда-выражения.
  • Знакомство со Spring Boot: контроллеры, бины и внедрение зависимостей.
  • Основы HTTP, REST, JSON и SQL.
  • Базовые навыки работы с Git, командной строкой и Docker.

Для практики понадобятся JDK 25, среда разработки, Git и Docker с Docker Compose. Gradle Wrapper входит в проект.

В учебном стенде одновременно работают несколько приложений, базы данных и инфраструктурные сервисы. Компьютер должен позволять запускать такой набор контейнеров.

Как проходит обучение

Код пишется и запускается в видео-скринкастах. Вы повторяете действия в своём проекте: создаёте сервисы, добавляете API и хранилища, связываете их по gRPC и через Kafka, затем подключаете метрики и нагрузку.

К видео подготовлены текстовые лекции с объяснениями, листингами и командами для проверки результата. Исходный код проекта помогает сверить свою реализацию.

После обычных уроков идут задания с одним или несколькими ответами и задания на сопоставление. В курсе есть самостоятельные ТЗ с последующими разборами: категории и товары каталога, удаление корзины, операции с промоакциями, запуск корзины в контейнере и удаление заказа.

В итогах блоков связываем изученные темы и проверяем, как сервисы работают вместе. В финальной части запускаем систему в Docker Compose, создаём нагрузку и наблюдаем метрики в Grafana.

Локальный запуск проекта

Если хотите поднять весь проект у себя локально, воспользуйтесь инструкцией запуска демо проекта на GitHub.

 

Программа курса

В курс входят

  • 111 уроков
  • 11часов 32минуты видео
  • 300 тестов
  • 1 интерактивная задача
загружаем...

Наши преподаватели

Что вы получаете

  • Проект бэкенда интернет-магазина из четырёх взаимодействующих микросервисов
  • Практику применения трёх архитектур, CQRS, нескольких хранилищ, gRPC и Kafka на одном проекте
  • Конфигурации Docker Compose, Prometheus и Grafana, дашборды и сценарии нагрузки k6
  • Исходный код проекта, текстовые лекции, самостоятельные задания и их разборы
  • Опыт проверки взаимодействия сервисов, обработки повторов сообщений, работы с кэшем и метриками

Сколько стоит обучение

9 999 ₽
12 000 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям

9 999 ₽
12 000 ₽