Skip to content

Conversation

@impatient0
Copy link
Owner

Этот Pull Request представляет новый сервис gateway, который выступает в качестве единой точки входа для всей системы. Кроме того, была произведена реорганизация структуры проекта для более логичного размещения модуля config-server.

Ключевые архитектурные решения и реализованная функциональность:

  1. Динамическая маршрутизация с помощью Service Discovery:

    • Реализован API Gateway на базе Spring Cloud Gateway, который интегрирован с Eureka Service Registry.
    • Благодаря использованию DiscoveryClient Route Definition Locator, маршруты для всех зарегистрированных микросервисов создаются автоматически. Это исключает необходимость ручной конфигурации и обеспечивает масштабируемость: новые сервисы будут доступны через gateway сразу после их регистрации в Eureka.
  2. Централизованная обработка запросов через фильтры:

    • Для всех маршрутов автоматически применяется глобальный фильтр PrefixPath, который добавляет к URI каждого запроса префикс /api/v1. Это обеспечивает консистентность и унификацию путей API.
  3. Глобальная отказоустойчивость (Circuit Breaker):

    • На уровне gateway для всех маршрутов настроен общий Circuit Breaker (с помощью Resilience4j).
    • Реализован единый fallback-механизм: в случае недоступности целевого сервиса gateway вернёт стандартизированный ответ, информирующий клиента о временной недоступности сервиса, вместо ошибки таймаута или недоступности.
  4. Рефакторинг структуры проекта:

    • Модуль config-server был перемещён из корневого каталога в под-модуль infra. Это исправляет его предыдущее некорректное расположение и логически группирует все инфраструктурные сервисы (config-server, discovery-service, gateway) вместе.

@impatient0 impatient0 merged commit 40290a6 into main Aug 15, 2025
1 of 2 checks passed
@impatient0 impatient0 deleted the develop branch August 15, 2025 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants