묠니르묘묘
꾸준히 성장하는 개발자스토리
묠니르묘묘
전체 방문자
오늘
어제
  • 분류 전체보기 (188)
    • 프로그래밍 (48)
      • 디자인패턴 (4)
      • 예외,에러 (4)
      • Java (29)
      • Kotlin (3)
      • React.js (4)
      • JavaScript (2)
      • Apache Kafka (2)
    • Spring (49)
      • Spring (21)
      • Spring Cloud (3)
      • JPA (25)
    • 코딩테스트 (31)
      • 알고리즘 (5)
      • Java - 백준 (26)
      • Java - 프로그래머스 (0)
    • AWS (7)
    • 데이터베이스 (6)
    • 개발 etc (23)
    • 도서 (5)
    • 회고록 (4)
    • 데브코스-데이터엔지니어링 (15)

인기 글

최근 글

hELLO · Designed By 정상우.
묠니르묘묘

꾸준히 성장하는 개발자스토리

Spring/Spring

Spring Cloud Config Client에서 actuator refresh 장애

2023. 7. 1. 15:58

Spring Cloud Config Client 에서는 Config Server의 변경된 설정정보를 받기위해서는 actuator refresh 방법으로 설정정보를 갱신할 수 있다. 그런데 아무리 refresh를 해도 변경된 설정정보가 갱신이 안되는 장애를 겪었다. 아무리 살펴봐도 application.yml에 잘못적은 것이 아닌데 무엇이 문제인가 생각하다가 bootstrap 라이브러리때문인 것을 알게되었다.

 

🚀 상황

  • Spring Cloud Config Server에서 변경된 설정정보를 받으려고 Actuator refresh API 호출함
  • refresh API 호출하였지만 설정정보가 갱신되지 않음

 

🚀 문제해결

Spring Cloud Config 공식홈페이지에서 Spring Cloud Config Client 챕터를 살펴보다가 레거시가 되버린 bootstrap 라이브러리 때문이지 않을까 싶어서 dependencies에서 제거하니 갱신이 되었다.

 

 🚀 정보

Spring Boot 2.4 버전 이전에는 Spring Cloud Bootstrap을 통해 Spring Cloud Config Server 설정을 관리할 수 있었다. 하지만 Spring Boot 2.4 버전 이후에는 application.yml 설정파일로도 Config Server 데이터를 가져올 수 있게 되면서 더 이상 쓰지않게 되었다.

 

Spring Boot 2.4 버전 이후에는 application.yml에 아래와 같이 설정하면 된다.

spring:
  profiles:
    active: dev #참조하고자 하는 yml파일명 뒷부분
  cloud:
    config:
      name: ecommerce #참조하고자 하는 yml파일명 앞부분
  config:
    import: optional:configserver:http://localhost:8888 # Config Server의 URI

만약 ecommerce-dev.yml 파일과 ecommerce-prod.yml 파일이 있다고 할 때, 위와 같은 설정이면 ecommerce-dev.yml 파일을 Config Server로부터 가져와서 활성화하게 된다.

 

 

만약 레거시한 방법인 bootstrap을 사용하려면 공식 홈페이지에 나와있는 대로 설정해야한다. 공식 홈페이지에서는 `spring-cloud-starter-bootstrap` 스타터를 통해 활성화 해야 한다고 적혀있다. 속성은 아래와 같이 설정한다.

spring.cloud.bootstrap.enabled=true

이렇게 bootstrap이 활성화되면 bootstrap.yml 에 적어놨던 spring.cloud.config.uri 속성을 통해 Config Server에 연결된다.

간단하게 bootstrap.yml에는 아래와 같이 설정되어 있다.

spring:
  cloud:
    config:
      uri: http://localhost:8888
      name: 파일명

 

저작자표시 비영리 (새창열림)

'Spring > Spring' 카테고리의 다른 글

스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 2편  (0) 2023.12.18
스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 1편  (1) 2023.12.18
로컬에서 동일한 SpringBoot 서버를 여러개 실행하는 방법  (0) 2023.06.02
SpringBoot 랜덤포트로 실행하기  (3) 2023.05.15
선착순 쿠폰 발급을 위한 redis 분산락  (0) 2023.05.11
    'Spring/Spring' 카테고리의 다른 글
    • 스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 2편
    • 스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 1편
    • 로컬에서 동일한 SpringBoot 서버를 여러개 실행하는 방법
    • SpringBoot 랜덤포트로 실행하기
    묠니르묘묘
    묠니르묘묘

    티스토리툴바