Микросервисное приложение для управления пользователями, построенное на основе Spring Boot и Spring Cloud.
В проекте используются следующие сервисы:
- API Gateway — единая точка входа в приложение, порт
8080. - User Service — управление пользователями, порт
8081. - Notification Service — отправка email-уведомлений, порт
8082. - Discovery Server (Eureka) — регистрация и обнаружение сервисов, порт
8761. - Config Server — централизованное хранение конфигурации, порт
8888. - Kafka — передача событий между сервисами, порт
9092. - PostgreSQL — хранение данных пользователей, порт
5432.
- Клиент отправляет HTTP-запрос в API Gateway.
- API Gateway через Eureka находит нужный сервис и передаёт ему запрос.
- Eureka выполняет регистрацию и обнаружение сервисов.
- Запрос передаётся в User Service.
- User Service работает с данными пользователей в PostgreSQL.
- API возвращает данные пользователей с использованием HATEOAS — в ответе содержатся ссылки на доступные действия с ресурсом.
- При создании пользователя User Service отправляет событие в Kafka.
- Notification Service получает событие из Kafka.
- Notification Service отправляет email пользователю.
- Конфигурация сервисов загружается из внешнего Git-репозитория через Config Server.
Из корневой директории проекта выполнить:
docker compose up -dПроверить состояние контейнеров:
docker compose psВсе сервисы должны находиться в состоянии Up.
Основная точка входа в приложение:
Документация REST API доступна через Swagger UI:
http://localhost:8081/swagger-ui.html
Открыть в браузере:
Здесь отображаются все зарегистрированные сервисы и их текущий статус.