<스프링 마이크로서비스 코딩 공작소>(길벗)을 학습하고 개인 학습용으로 정리한 내용입니다
일반적인 구성 관리
- 일반적으로 애플리케이션에 대한 구성 정보를 관리한다면 애플리케이션 내에 프로퍼티 파일(yaml, xml등)을 통해 구성 정보를 관리한다.
- 이러한 경우 애플리케이션과 함께 관리 되어야하고 구성 정보가 변경될 경우 재 배포의 작업이 필요하다.
- 무엇보다 수많은 마이크로서비스 인스턴스가 실행되는 클라우드 기반의 애플리케이션 상황에서는 적합하지 않은 방법이다.
마이크로 서비스에서의 구성 관리
마이크로 서비스에서의 구성 관리에서 지켜야하는 원칙
- 분리 : 실제 물리적인 서비스의 배포와 서비스 구성 정보를 완전히 분리한다. 애플리케이션 구성 정보를 서비스 인스턴스와 함께 배포하지 않는다. 대신 별도의 중앙 저장소에서 구성 정보를 가져온다.
- 추상화 : 서비스 인터페이스 뒷 단에 있는 구성 데이터의 접근 방식을 추상화한다. 서비스 저장소에 직접 액세스 하기 보다 애플리케이션이 REST 기반의 JSON을 통해 구성 데이터를 조회하게 한다.
- 중앙 집중화 : 애플리케이션의 구성 정보를 소수 저장소에 집중화한다.
- 견고성 : 애플리케이션 구성 정보를 배포된 서비스와 완전히 분리하고 중앙 집중화하므로 어떤 솔루션을 사용하더라도 고가용성과 다중성을 구현할 수 있어야한다.
마이크로 서비스에서의 구성 관리 동작과정
1. 마이크로서비스 인스턴스가 시작되면 서비스 엔드포인트를 호출해 동작 중인 환경별 구성 정보를 읽어온다.
2. 실제 구상 정보는 저장소에 저장되어 있다.
3. 실제로 애플리케이션 배포 방식과 독립적으로 애플리케이션의 구성 데이터를 관리한다.
4. 구성 관리가 변경되면 애플리케이션 구성 데이터를 사용하는 서비스는 변경 통보를 받고 보유한 애플리케이션 데이터 사본을 갱신한다.
참고자료
스프링 마이크로 서비스 코딩 공작소
'MSA' 카테고리의 다른 글
[MSA] 클라이언트 회복성 패턴 (0) | 2021.01.15 |
---|---|
[MSA] 서비스 디스커버리 (0) | 2021.01.14 |
[MSA] 마이크로서비스 (0) | 2021.01.13 |
댓글