1. Spring Cloud Config 개요
- Spring Cloud Config는 분산 시스템에서 설정을 외부화하고 중앙에서 관리하기 위한 솔루션입니다.
- 모든 환경(개발, 테스트, 운영)의 설정을 한 곳에서 관리하고, 애플리케이션의 재시작 없이 설정을 변경할 수 있습니다.
1.1 주요 특징
- Git 저장소를 백엔드로 사용하여 설정의 버전 관리 가능
- 설정 변경 시 실시간 반영 지원
- 암호화/복호화 기능 내장
- REST API 제공
- 다양한 형식(YAML, Properties, JSON) 지원
2. 구성 요소
2.1 Config Server
- Config Server는 설정을 제공하는 서버로, 다음과 같이 구성합니다:
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {
public static void main(String[] args) {
SpringApplication.run(ConfigServer.class, args);
}
}
서버 설정
spring:
cloud:
config:
server:
git:
uri: https://github.com/myorg/config-repo
search-paths: configs
default-label: main
2.2 Config Client
- 각 마이크로서비스는 Config Client가 되어 설정을 가져옵니다
spring:
application:
name: my-service
cloud:
config:
uri: http://config-server:8888
fail-fast: true
팁
fail-fast: true
를 설정하면 Config Server에 연결할 수 없을 때 애플리케이션 구동을 실패시킵니다. 설정이 필수적인 경우 권장됩니다.