Ответ
Основные изменения:
- Фреймворк: Переход на Spring Boot 3.0 для микросервисов.
- Парадигма: Внедрение реактивного программирования через Spring WebFlux и R2DBC для асинхронной работы с PostgreSQL.
- Коммуникация: Использование Apache Kafka для асинхронного обмена событиями между сервисами.
- Оркестрация: Миграция с Docker Compose на Kubernetes с управлением развертыванием через Helm-чарты.
- Мониторинг: Переход с Prometheus на OpenTelemetry для более гибкой телеметрии.
Пример конфигурации реактивного продюсера Kafka:
@Configuration
public class KafkaConfig {
@Bean
public ReactiveKafkaProducerTemplate<String, Event> producerTemplate() {
return new ReactiveKafkaProducerTemplate<>(senderOptions());
}
}
Тестирование: Для интеграционных тестов начали использовать Testcontainers, что позволяет запускать тесты с реальными базами данных и брокерами в изолированных контейнерах.