Spring Cloud Config

Тема дорожной карты · Spring Boot

Spring Cloud Config — это централизованный сервер конфигурации и клиентская библиотека, которые выносят конфигурацию Spring Boot-приложений за пределы приложения для всех окружений в распределённой системе. Сервер Spring Cloud Config Server — это стандартное Spring Boot-приложение, аннотированное @EnableConfigServer, которое раздаёт свойства из Git-репозитория, файловой системы или Vault-бэкенда, делая конфигурацию версионируемой и аудируемой. Клиентские Spring Boot-сервисы забирают конфигурацию при запуске, добавив spring-cloud-starter-config в classpath и указав spring.config.import=configserver:http://config-server:8888 в bootstrap.yml или application.properties. Spring Cloud Config поддерживает переопределения для конкретных окружений через файлы на основе профилей (например, myservice-production.yml) и обновление @ConfigurationProperties-бинов во время работы через POST на /actuator/refresh или события Spring Cloud Bus, инициируемые через RabbitMQ или Kafka. Для продакшн-развёртываний Spring Boot в Kubernetes Spring Cloud Config часто комбинируется с Kubernetes ConfigMaps и Secrets в качестве дополнительного слоя конфигурации, обеспечивая единообразную стратегию вынесенной конфигурации.

Как это работает

Spring Cloud Config (Spring Cloud): Spring Cloud Config Server централизует конфигурацию с Git-backend + per-service refresh. Service Discovery (Eureka) был каноничным вариантом; в 2026 Kubernetes-native discovery (DNS + Services) более распространён. Spring Cloud Gateway — современный API gateway (заменяет Zuul). Resilience4j добавляет circuit breakers, retries, bulkheads, rate limits. Micrometer Tracing (заменяет Sleuth) для distributed tracing (B3 / W3C Trace Context, OpenTelemetry export).

Когда применять

На Kubernetes предпочитайте K8s-native primitives (Services, ConfigMaps, Secrets, Istio/Linkerd) перед Spring Cloud эквивалентами — меньше поддержки. Spring Cloud Config полезен для не-K8s env или как Git-backed config single source. Всегда оборачивайте внешние вызовы в circuit breakers в production. Trace IDs через каждый service-вызов — иначе debug distributed-багов безнадёжен.

Типичные ошибки

Ловушки Spring Cloud Config: Eureka + K8s Services (дублированный discovery, оба сломаны); circuit breakers misconfigured (fail-open прячет outage); нет distributed tracing (не отладить 5-service запрос); Spring Cloud Gateway для всего (есть scaling-ограничения — proper API gateways как Kong, Envoy, Cloudflare лучше подходят).

Связанные понятия

Полезные ресурсы