Ответ
Да, в проекте была реализована микросервисная архитектура на основе Spring Boot и Spring Cloud.
Ключевые технологии:
- Spring Cloud Netflix Eureka – для регистрации и обнаружения сервисов (Service Discovery).
- Spring Cloud OpenFeign – для декларативного создания REST-клиентов.
- Spring WebFlux – для построения реактивных неблокирующих API в некоторых сервисах.
- Spring Data (JPA, MongoDB) – для работы с различными типами хранилищ.
- Resilience4j – для реализации шаблонов устойчивости (Circuit Breaker, Retry).
- Apache Kafka – для асинхронной связи между сервисами через события.
Пример конфигурации микросервиса (Eureka-клиент):
@SpringBootApplication
@EnableDiscoveryClient // Регистрация в Eureka
public class OrderServiceApplication {
public static void main(String[] args) {
SpringApplication.run(OrderServiceApplication.class, args);
}
}
Принципы архитектуры:
- Слабая связанность: Каждый сервис обладал собственной базой данных.
- Синхронная связь: REST API с JSON для прямых запросов.
- Асинхронная связь: Kafka для распространения событий (например, «Заказ создан»).
- Отказоустойчивость: Использование Circuit Breaker для предотвращения каскадных сбоев.