Skip to content

Repository files navigation

Explore With Me — микросервисная архитектура (Этап 2)

Описание

Проект Explore With Me был переработан из монолитного приложения в набор микросервисов. Целью изменений стало повышение масштабируемости, отказоустойчивости и удобства развития системы.

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


Архитектура проекта

Проект состоит из следующих компонентов:

Инфраструктурные сервисы

  • Config Server — централизованное хранение конфигураций всех сервисов.
  • Discovery Server (Eureka) — сервис обнаружения, обеспечивающий динамическую регистрацию микросервисов.
  • API Gateway — единая точка входа для всех HTTP-запросов (порт 8080).

Бизнес-сервисы

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

Общий модуль

  • ewm-common — содержит общие DTO, enum’ы, исключения и вспомогательные утилиты, используемые несколькими микросервисами.

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

  • Внешние клиенты взаимодействуют только с API Gateway.
  • Gateway перенаправляет запросы в соответствующие микросервисы.
  • Межсервисное взаимодействие реализовано с использованием OpenFeign и Eureka.
  • Все сервисы получают конфигурации из Config Server при запуске.

Надёжность

При недоступности зависимого микросервиса используется деградация функциональности: возвращаются значения по умолчанию (например, 0 или пустые коллекции). Для повторных запросов и повышения устойчивости используются механизмы повторных попыток (Retry).


Тестирование

Для проверки совместимости и корректности работы системы используются Postman-тесты. Все запросы выполняются через API Gateway и не зависят от внутреннего устройства сервисов.


Внешний API

Описание внешнего API доступно в спецификации OpenAPI, предоставленной в рамках группового проекта.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages