Spring Cloud Config
- 분산 시스템에서 서버, 클라이언트 구성에 필요한 설정 정보를 외부 시스템에서 관리
- 하나의 중앙화 된 저장소에서 구성요소 관리 가능
Local Git Repository
Config-service 설정
1. pom.xml 설정
'spring-cloud-config-server' Dependencies 추가, @EnableConfigServer 추가
2. .yml 파일 설정
spring.cloud.config.server.git.uri: file://{로컬 깃 폴더 경로}
- 로컬 깃 폴더에 있는 .yml 파일 우선순위
application.yml -> application-name.yml -> application-name-<profile>.yml
예를 들어, 로컬 깃 폴더에 application.yml 과 ecommerce.yml 이 존재하고 어플리케이션 이름이 ecommerce인 서비스가 있다면, ecommerce.yml 파일이 application.yml 파일을 오버라이드해 우선 적용됨.
User-service 설정
1. pom.xml 설정
'spring-cloud-starter-config', 'spring-cloud-starter-bootstrap' Dependencies 추가
2. .yml 설정
spring.cloud.config.name: ecommerce
spring.config.import: optional:configserver:http://localhost:8888
서버를 재기동하면 적용됨.
하지만 재기동하지 않고 사용하는 방법은 없을까?
Actuator refresh
- Application 상태, 모니터링
- Metric 수집을 위한 Http End point 제공
1. pom.xml 설정
'spring-boot-starter-actuator' Dependencies 추가
2. .yml 설정
management.endpoints.web.exposure.include: refresh, health, beans
POST http://[service ip]/actuator/refresh 요청 시 적용
하지만 아직 작업이 번거롭다.
Spring Cloud Bus 이용
Remote Git Repository
config-service에 .yml 파일 uri 만 바꿔주면 됨.
Native File Repository (Git이 아니라 File System에 직접 저장하는 방법)
config-service의 .yml 파일에 spring.profiles.active: native 로 변경.
spring.cloud.config.server.native.search-locations: file://{폴더 경로}
'DevOps > Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)' 카테고리의 다른 글
Catalog-service 구현 중 테이블 생성이 안되는 이슈 발생 (미해결) (0) | 2023.04.05 |
---|---|
Spring Security 적용 (0) | 2023.04.04 |
암호화 처리를 위한 Encryption과 Decryption (0) | 2023.04.03 |
Spring Cloud Bus (0) | 2023.03.30 |
해당 카테고리는 이도원님의 인프런 강의 복습용 카테고리입니다. (0) | 2023.03.30 |