백엔드
Spring Cloud Config & Bus-Refresh 도입기
두줄요약
여러 MSA의 공통 설정 변경을 재배포 없이 반영하기 위해 Spring Cloud Config와 Bus-Refresh를 도입했습니다. 그 결과 배포 시간이 크게 줄고 운영 중 설정 변경 대응이 쉬워졌습니다.
문제 상황
- 여러 마이크로서비스에서 공통 설정 변경 시 전체 재빌드·재배포가 필요한 비효율
- 서비스마다 설정이 달라지며 연동과 운영 안정성에 부담 발생
원인 분석
- 설정값이 각 서비스에 분산되어 중앙 관리와 동기화가 어려움
- 작은 설정 수정에도 운영 중인 서비스 전체를 멈춰야 하는 구조
해결 방법
- Spring Cloud Config Server로 Git 기반 설정 중앙 관리
- Spring Cloud Bus-Refresh와 /actuator/busrefresh로 설정 변경을 모든 서비스에 전파
- @RefreshScope와 actuator, AMQP 연동으로 재시작 없이 설정 반영
성능/운영 포인트
- 설정 변경 배포 시간이 약 20분에서 1분 이내로 단축
- Git 버전 관리와 롤백, Slack 알림으로 운영 가시성 확보
- DataSource나 외부 주입값 중심 적용, DTO 같은 고정 구조에는 미적용
