분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보(application.yml or application.properties)를 외부 시스템에서 관리
하나의 중앙화 된 저장소에서 구성요소가 관리 가능하다.
각 서비스를 다시 빌드하지 않고, 바로 적용이 가능하며, 동적으로 환경 변경이 가능하다. 또한, 애플리케이션 배포 파이프라인을 통해 환경에 맞는 구성 정보를 사용한다.
Spring Cloud Config에서 우선순위들을 설정할 수 있다.
그리고 각 마이크로서비스들 마다 필요한 설정들을 Spring Cloud Config에 불러오면 적용이 된다.
yml파일들을 모아두는 폴더 안에 yml파일 작성하기 (ecommerce.yml)
token:
expiration_time: 86400000# 하루secret: user_token# jwt 생성 용도gateway:
ip: 각자 아이피 설정
Config Server 생성 및 application.yml 작성
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: file//{fileURL 경로 작성}
fileURL 작성시 윈도우 운영체제의 경로를 작성할 것. 또한 경로의 맨 앞에 "/" 붙이기!
Config Server 프로젝트 실행 클래스에 @EnableConfigServer 추가
@SpringBootApplication
@EnableConfigServer
public class ConfigServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServiceApplication.class, args);
}
}
필요한 라이브러리
마이크로서비스에 bootstrap.yml 추가
해당 내용을 저장하면 애플리케이션에 설정된 yml 파일들 보다 먼저 적용된다.
spring:
cloud:
config:
uri:# config server의 uriname: ecommerce# yml 파일 명
설정하기
http.authorizeRequests().antMatchers("/actuator/**").permitAll();
management:
endpoints:
web:
exposure:
exclude: refresh, health, beans
Github Repository 추가 및 연동
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: github url
username: github username
password: github password
각 마이크로서비스 마다 다른 yml을 등록하고 싶다면?
spring:
cloud:
config:
uri: {Spring Cloud Config가 실행되고 있는 URL}
name: {yml 메인 파일 이름}
profiles:
active: {yml 프로필 파일명}
본 포스팅은 'Spring Cloud로 개발하는 마이크로서비스 애플리케이션' 강의를 공부한 포스팅입니다.