- docker-compose файл для поднятия в контейнерах сервисов и БД
- Организована структура микросервисов, внутри них build.gradle в который нужно добавить зависимости, а в папке service_x необходимо написать код
- В application.yaml указаны основные проперти и затянуты переменные среды из контейнеров, которые необходимы для реализации
Собрать демо-систему из 3 микросервисов с взаимодействием через Kafka и REST API
- Потрогать Kafka как шину событий
- Пощупать взаимодействие REST между сервисами
- Освоить работу с PostgreSQL, Redis, MongoDB
- Развернуть всё через Docker Compose
- Spring Boot (SLF4J для логов)
- Docker, Docker Compose
- Kafka, Kafka UI (Redpanda Console)
- MongoDB, Redis, PostgreSQL
- Liquibase (для миграций PostgreSQL)
- Слушает Kafka topic
in - Сохраняет сообщение в MongoDB
- Вызывает REST API Service B (
POST /api/process)
- Принимает REST-запросы от Service A
- Если
type == important, сохраняет в Redis (TTL=5 мин) - Вызывает Service C по REST (
POST /api/save)
- Принимает REST-запросы от Service B
- Сохраняет сообщение в PostgreSQL
- Публикует сообщение в Kafka (topic
out)
| Topic | Publisher | Consumer |
|---|---|---|
| in | UI | Service A |
| out | Service C | UI(для просмотра) |
- Установить Docker и Docker Compose
- Запустить проект командой или через UI IDE
docker-compose up --build- Адрес Kafka UI: http://localhost:8080
- Отправить тестовое сообщение в Kafka через Kafka UI (
in) - Проверить обработку сообщений через Kafka UI (
out) и базы данных
docker-compose.yml— инфраструктура (Kafka, базы, UI), в нем же объявлены необходимые переменные среды (енвы), которые можно затянуть в приложение через application.yaml.service_a,.service_b,.service_c— код микросервисов- Для локальной разработки, сначала в градле нужно зарегистрировать все папки как отдельные проекты (жми на build.gradle ПКМ и потом - Link Gradle Project)