Skip to content

Repository files navigation

Explore With Me

Проект Explore With Me из 17 спринта, который разбит на микросевисы. Добавлены сервер обнаружения, сервер конфигурации и шлюз. Функционал остался прежним: управление событиями, пользователями, запросами на участие, комментариями и статистикой.

Архитектура

Сервисы

Список микросервисов, на которые разделен проект:

  1. stats-server:

    • хранит и предоставляет статистику по просмотрам событий
  2. compilation-service:

    • управляет подборками событий: создание, обновление, удаление, получение
  3. event-service:

    • управляет событиями: создание, обновление, публикация, получение (админ, приватный, публичный апи)
    • включает в себя работу с категориями, локациями и комментариями
  4. request-service:

    • обрабатывает запросы на участие в событиях: создание, отмена, подтверждение/отклонение
  5. user-service:

    • управляет пользователями: создание, удаление, получение

Инфраструктурные компоненты

  • discovery-server (Eureka Server): сервер обнаружения, все микросервисы регистрируются здесь для динамического обнаружения
    • Порт: 8761.
  • config-server: централизованное управление настройками
    • Порт: автоматически.
  • gateway-server (Spring Cloud Gateway): шлюз для маршрутизации внешних запросов к сервисам, использует Eureka для маршрутизации по именам сервисов
    • Порт: 8080.
    • Маршруты: определяют пути для каждого сервиса (например, /admin/events/** → event-service)

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

  • обнаружение сервисов: все сервисы регистрируются в Eureka
  • внутреннее взаимодействие: через Feign-клиенты
  • база данных: каждый сервис имеет свою схему в базе данных
  • конфигурация: через Config Server

Внутренний API для взаимодействия сервисов

внутренний апи реализован через Feign-интерфейсы

  1. EventClient (event-service):

    • GET /internal/events/{eventId}: получить событие по id
    • GET /internal/events?ids={list}: получить список событий
  2. RequestClient (request-service):

    • GET /internal/requests/confirmed-many?eventIds={list}: получить подтвержденные запросы для списка событий
    • GET /internal/requests/confirmed-single?eventId={id}: получить подтвержденные запросы для одного события
  3. UserClient (user-service):

    • GET /internal/users?ids={list}: получить список пользователей
    • GET /internal/users/{userId}: получить пользователя по id

Внешний API

внешний апи доступен через шлюз gateway-server на порту 8080

спецификация апи сервиса статистики

спецификация апи основной функциональности

About

Template repository for Graduation project.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages