학습일지/Architecture

[Architecture] 중앙 집중식 Config 설정 관리

Merge Log 2025. 9. 17. 16:40

Spring Cloud Config

  • 분산 시스템 환경에서 중앙 집중식 구성 관리를 제공해주는 프레임워크입니다
  • 각 서비스의 설정을 중앙에서 관리 및 애플리케이션 부팅 시(또는 런타임시) 그 설정을 원격으로 가져와 적용하게 해주는 구성 시스템
  • Git, 파일시스템, JDBC 등 다양한 저장소를 지원합니다
  • 환경별 구성 관리 / 실시간 구성 변경 등의 기능을 지원합니다

실시간 구성 변경 방법

  • Spring Cloud Bus 를 이용하는 방법
    • 이를 위해서는 메시징 시스템(RabbitMQ 또는 Kafka 등) 을 사용하여 변경 사항을 전파합니다
  • 수동으로 /actuator/refresh 엔드포인트를 호출하는 방법
    • 클라이언트 애플리케이션에서 수동으로 갱신, Spring Actuator 의 actuator/refresh 엔드포인트를 요청
    • 방법은 간단하지만 각 클라이언트 애플리케이션에서 수동으로 호출해야한다
  • Spring Boot DevTools 를 사용하는 방법
    • 개발환경에서 변경파일을 감지하며 애플리케이션을 재시작, classpath 내의 파일 변경도 포함됩니다
  • Git Repository 를 이용하는 방법 등
    • Spring Cloud Config 서버가 Git Repository 에서 파일을 읽어오도록 할 수 있습니다

로컬에서 수동으로 config 실시간 반영 테스트

구조

  1. Client 가 Product 조회
    • Product App 은 port 와 message 를 Config Server 에서 조회
  2. Client 가 POST actuator/refresh 요청 (@RefreshScope 를 적용한 Application 에서 요청해야함)
    • Config Server 에서 정보를 가져와서 Product 에 반영

테스트 코드