1. Spring Cloud Config란?
- 분산 시스템에서 서버 클라이언트 구성에 필요한 설정 정보(application.yml)을 외부 시스템에서 관리
- 하나의 중앙화된 저장소에서 구성요소 관리 가능
- 각 서비스를 다시 빌드하지 않고, 바로 적용 가능
- 애플리케이션 배포 파이프라인을 통해 DEV-UAT-PROD 환경에 맞는 구성 정보 사용
2. application.yml 우선순위
application.yml -> application-name.yml -> application-name-<profile>.yml
3. ecommerce.yml 파일 생성
디렉토리 생성 후 ecommerce.yml 파일 생성
$ git add ecommerce.yml
$ git commit -m "upload ecommerce yml file"
4. config-service -> application.yml
server:
port: 8888
spring:
application:
name: config-service
cloud:
config:
server:
git:
uri: file:///C:/Users/PC/Desktop/project/git-local-repo
5. spring cloud config 실행
http://localhost:8888/ecommerce.default
name은 yml 파일의 이름이다
6. bootstrap.yml
@GetMapping("/health_check")
public String status() {
return String.format("It's Working in User Service"
+ ", port(local.server.port)=" + env.getProperty("local.server.port")
+ ", port(server.port)=" + env.getProperty("server.port")
+ ", token secret=" + env.getProperty("token.secret")
+ ", token expiration time=" + env.getProperty("token.expiration_time"));
}
// bootstrap.yml
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
7. Spring boot Actuator
Spring boot Actuator : Application 상태, 모니터링. Metric 수집을 위한 Http End Point 제공
설정파일의 내용이 변경될 때마다 커밋, 서버 재기동을 해야되는데 너무 번거롭고 비효율적이다
이럴 때 Actuator을 사용하면 간편하다
8. application.yml 내용 추가
management:
endpoints:
web:
exposure:
include: refresh, health, beans
9. 테스트
1). actuator/health
2). actuator/beans
3). actuator/refresh
ecommerce.yml 수정 커밋 -> Postman -> POST로 요청
git add ecommerce.yml
git commit -m "test commit"
10. GateWay에 Config 연동
// gatewayServiceApplication.java
@Bean
public HttpTraceRepository httpTraceRepository() {
return new InMemoryHttpTraceRepository();
}
11. 라우트 추가
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/user-service/actuator/**
- Method=GET, POST
filters:
- RemoveRequestHeader=Cookie
- RewritePath=/user-service/(?<segment>.*), /$\{segment}
- AuthorizationHeaderFilter
'Java > Spring Boot' 카테고리의 다른 글
[MSA] Spring Cloud로 MSA를 개발해보자 7편 [설정 정보 암호화] (0) | 2024.08.28 |
---|---|
[MSA] Spring Cloud로 MSA를 개발해보자 6편 [Spring Cloud Bus] (0) | 2024.08.27 |
[MSA] Spring Cloud로 MSA를 개발해보자 4편 [JWT 인증] (0) | 2024.08.25 |
[MSA] Spring Cloud로 MSA를 개발해보자 3편 [Gateway Service-2] (0) | 2024.08.16 |
[MSA] Spring Cloud로 MSA를 개발해보자 2편 [Gateway Service] (1) | 2024.08.13 |