Skip to content

valeriyek/java-plus-graduation

Repository files navigation

Java Plus Graduation — Сервис событий на микросервисной архитектуре

Состав проекта: микросервисы

Проект реализован по принципам микросервисной архитектуры и включает в себя следующие сервисы:

  • category-service — управление категориями событий
  • event-service — публикация, модерация, поиск событий, логика взаимодействия с пользователями
  • request-service — управление заявками на участие в событиях
  • user-service — управление пользователями
  • stats-server — сбор и предоставление статистики по просмотрам и обращениям к API

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

user-service

  • Не зависит от других сервисов

event-service

Обращается к:

  • user-service — получение информации об инициаторе события
  • request-service — получение информации об одобренных заявках
  • category-service — получение информации о категории события
  • stats-server — сохранение и получение статистики просмотров

request-service

Обращается к:

  • user-service — проверка данных о пользователе
  • event-service — получение информации о событиях и проверка лимитов
  • category-service — сопутствующая валидация

category-service

  • Вызывается из event-service и request-service

stats-server

  • Автономный сервис
  • Собирает и предоставляет статистику посещений (эндпоинты, IP, количество просмотров и др.)

API-спецификации


Конфигурация и инфраструктура

  • Вся конфигурация централизована через config-server, основанный на spring-cloud-config и размещённый в модуле infra
  • Используются профили dev и prod
  • Настройка осуществляется через локальный репозиторий с конфигурационными файлами application.yml

Общие модели и взаимодействие

  • Общие DTO и контракты вынесены в отдельный модуль interaction-api
  • Модуль подключается как зависимость ко всем микросервисам
  • DTO и интерфейсы используются в Feign-клиентах для упрощённого и безопасного взаимодействия между сервисами

Стек технологий

  • Java 21
  • Spring Boot 3.3
  • Spring Cloud
  • PostgreSQL
  • Apache Kafka
  • Feign
  • Eureka Discovery
  • Docker
  • Maven
  • MapStruct

About

Template repository for Graduation project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published