Ответ
Стек последнего проекта (микросервисная платформа):
| Категория | Технологии |
|---|---|
| Бэкенд (основное) | Java 17, Spring Boot 3.1, Spring MVC, Spring Data JPA |
| Базы данных | PostgreSQL (основная, реляционная), Redis (кеш и сессии) |
| ORM | Hibernate 6.2 |
| API & Коммуникация | REST (JSON), OpenAPI 3.0 (Swagger), gRPC (для межсервисного взаимодействия), Apache Kafka (асинхронные события) |
| Безопасность | Keycloak (OAuth2/OpenID Connect для аутентификации и авторизации) |
| Сборка & Зависимости | Gradle, Maven-репозиторий (Artifactory) |
| Тестирование | JUnit 5, Mockito, Testcontainers |
| Мониторинг & Логи | Prometheus (метрики), Grafana (дашборды), ELK-стек (логи) |
| Инфраструктура | Docker, Kubernetes (оркестрация), Helm (чарты), GitLab CI/CD (пайплайны) |
Пример конфигурации Spring Boot приложения:
@SpringBootApplication
@EnableCaching
@EnableJpaRepositories
public class OrderServiceApplication {
public static void main(String[] args) {
SpringApplication.run(OrderServiceApplication.class, args);
}
}
Обоснование выбора:
- Spring Boot — стандарт для enterprise Java, предоставляет готовые решения для большинства задач.
- PostgreSQL — надежная, функциональная реляционная БД с поддержкой JSON.
- Kubernetes + Docker — стандарт для контейнеризации и оркестрации микросервисов.
- Kafka — надежный брокер для асинхронной, отказоустойчивой коммуникации между сервисами.