728x90
Spring Cloud Config는 분산 시스템에서 구성 데이터를 중앙에서 관리하고 배포하기 위해 사용하는 Spring 프로젝트이다. 이를 통해 애플리케이션의 설정 정보를 중앙화하고 일관되게 관리할 수 있어 특히, 마이크로서비스 아키텍처에서 유용하게 사용된다. Spring Cloud Config는 클라이언트 애플리케이션들이 공통된 설정 정보에 쉽게 접근할 수 있도록 도와주며 설정 변경이 필요할 때 각 서비스를 수정하지 않고도 실시간으로 반영할 수 있게 한다.
주요 개념
- Spring Cloud Config Server : 구성 데이터를 저장하고 제공하는 서버이다. 서버는 일반적으로 Git, 파일 시스템, SVN과 같은 외부 저장소에 저장된 설정 파일을 읽어와 클라이언트 애플리케이션에 제공한다.
- Spring Cloud Config Client : Config Server에서 구성 데이터를 받아 사용하는 애플리케이션이다. 이 클라이언트는 Spring Cloud Config Server에 접근해 설정을 가져오고 필요에 따라 자동으로 설정을 갱신할 수 있다.
Spring Cloud Config의 특징
- 중앙 집중식 구성 관리 : 여러 서비스의 구성 파일을 중앙화하여 유지보수 및 관리를 쉽게 한다.
- 다양한 저장소 지원 : Git, SVN, 파일 시스템 등을 저장소로 사용할 수 있다.
- 프로파일 및 환경 분리 : application.yml에 프로파일과 환경을 설정하여 개발, 테스트, 운영 환경마다 다른 설정을 적용할 수 있다.
- 실시간 재로드 (Spring Cloud Bus와 함께 사용 시) : Spring Cloud Bus와 결합하면 구성 파일이 변경되었을 때 클라이언트가 즉시 변경 사항을 반영하도록 알림을 보낼 수 있다.
작동 원리
- 설정 저장소 : Config Server는 외부 설정 저장소에 있는 설정 파일을 로드한다. 예를 들어 Git을 설정 저장소로 사용하는 경우 application.yml 또는 application-{profile}.yml 파일을 만들어 두고 환경에 맞게 다른 파일을 준비할 수 있다.
- 설정 정보 요청 및 전달 : 클라이언트 애플리케이션은 부팅 시 Config Server에 요청을 보내고 해당 프로파일, 환경에 맞는 설정 정보를 받아온다.
- 동적 재구성 : Spring Actuator와 Spring Cloud Bus를 활용해 설정이 변경되면 이를 실시간으로 반영할 수 있다. 이는 서비스가 중단되지 않고 설정을 업데이트할 수 있게 해준다.
728x90
Spring Cloud Config 사용 방법
- Config Server 설정
- Spring Boot 프로젝트에 spring-cloud-config-server 의존성을 추가하고 @EnableConfigServer 어노테이션을 사용해 Config Server 애플리케이션을 생성한다.
- 설정 파일(application.yml 또는 application.properties)에서 외부 저장소를 연결하고 spring.cloud.config.server.git.uri에 Git 저장소 URL을 설정한다.
- Config Client 설정
- 클라이언트 애플리케이션에 spring-cloud-starter-config 의존성을 추가하고 bootstrap.yml 또는 bootstrap.properties 파일에서 spring.cloud.config.uri 속성을 통해 Config Server URL을 설정한다.
- 클라이언트는 애플리케이션 시작 시 Config Server에 설정을 요청하고 필요한 환경 변수 및 프로파일에 따라 설정 정보를 받아온다.
예제 설정
- Config Server - application.yml
spring:
cloud:
config:
server:
git:
uri: https://github.com/your-org/config-repo
- Client - bootstrap.yml
spring:
application:
name: my-service
cloud:
config:
uri: http://localhost:8888
Spring Cloud Config의 장점
- 설정 변경 시 모든 서비스에 일괄 적용 가능
- 마이크로서비스 간 설정 데이터 일관성 유지
- 외부 저장소로 Git 등을 사용하여 버전 관리 용이
Spring Cloud Config는 특히 빠르게 변화하는 마이크로서비스 환경에서 효율적이고 안정적인 설정 관리를 가능하게 한다.
반응형
'Spring' 카테고리의 다른 글
분산 락(Distributed Lock) (0) | 2024.11.21 |
---|---|
AOP - Advice, Target, Pointcut (1) | 2024.11.18 |
서블릿과 스프링의 개요 및 관계 (1) | 2024.11.05 |
Spring Boot와 AWS를 이용한 이미지 업로드 및 최적화 (0) | 2024.11.04 |
@Transactional 어노테이션 롤백 동작 방식 (0) | 2024.10.30 |