Config Server 만들기
우선 start.spring.io에서 config server 추가해서 만든다.
Config Server
컨픽 서버 포트는 보통 8888로 하는 경우가 많은 듯 하다.
server:
port:8888
그리고 @SpringBootApplication 밑에
@EnableConfigServer를 추가해줘야한다.
이후에 config 파일을 사용하려면 파일 형태로 저장할 수도 있고 github 같은 곳에 올려서 사용하는 방법도 있다.
1. 서버에 파일 형태로 저장한것을 사용
spring:
profiles:
active: native
cloud:
config:
server:
native:
search-locations: classpath:config/
classpath:config/ 부분은 resources/config 폴더를 말한다. file:///workspace/ 로 고치면 프로젝트 루트 폴더를 의미한다.
spring profiles active는 prod, dev 구분 처럼 사용하는 것이 일반적이지만 native로 설정하면 그 의미가 다르다.
active를 native로 네이티브 프로파일을 활성화해서 로컬 파일 시스템에 있는 설정 파일을 찾아서 사용할 수 있다라는 뜻이다.
2. 깃헙에 있는걸 가져와서 사용
spring:
cloud:
config:
server:
git:
url: myurl
github에 올려서 config server로 가져온다.
그냥 git 주소만 적으면 되고 뒤에 파라미터는 필요없다.
또한 가져올 git 주소는 yml파일만 존재해야 참조가 가능한듯 하다.(아닐 수도 았음)
예를들어서 github에 configtest-dev.yml을 올렸다고 가정하다.
그럼 서버 가동시 http://localhost:8888/configtest/dev로 참조가 가능하다.
Config Client 만들기
Config Client
Config Client란 Config Server의 Config 파일을 사용하는 모듈을 말한다.
start.spring.io에서 config client 추가
의존성을 추가하고 나서 당장 사용하지 않을거라면 yml 파일에 아래 설정을 추가해야 에러가 안난다.
spring.cloud.config.enabled: false
설정
spring:
application:
name: "auth"
config:
import: optional:configserver:http://localhost:8080
Config Client에서 가장 중요한 부분은 위의 import다.
위에서 설정한 config-server가 바라보는 폴더(config)에 applicaiton.yml을 모든 모듈이 공통으로 가져온다.(DB 설정, JWT Key)
그리고 개별적인 모듈은 위의 "auth"로 설정된 식별 이름 때문에 config server에 있는 auth.yml 혹은 application-auth.yml 파일을 연결시킨다.
참고로 도커를 사용할 땐 optional:configserver:http://server:8080
이런식으로 설정하면 docker container이름이 server인걸 찾아간다.
물론 도커가 원래 그렇게 server:8080으로 찾아갈 수 있는 기능이 있는건 아니고
Config Client 라이브러리가 해당 명령어를 그렇게 해석하기 때문이다.
'🍃 Spring' 카테고리의 다른 글
@Transactional을 테스트에 써야할까? (0) | 2023.07.23 |
---|---|
@JsonProperty 사용법에 대한 모든 것 (2) | 2023.07.09 |
스프링 클라우드 Eureka 구성하기(3) (0) | 2023.07.05 |
스프링 클라우드 Gateway 구성하기(2) (0) | 2023.07.05 |
스프링 클라우드 기초 사용법 및 소개(1) (0) | 2023.07.05 |