Inflearn Community Q&A
Spring Cloud Configuration 서버 장애시 작동원리
Written on
·
464
1
여러 마이크로 서비스의 환경 프로퍼티를 한곳에서 관리하고
동적으로 변경할수 있는 방법은 참 좋은것 같은데,
이 GIT으로 관리되는 저장소 혹은
Spring Cloud Configration 서버가 내려갔다거나
하면 어떻게 되는 건가요?
모든 마이크로서비스가 장애후 재시작이 안된경우는 이미 가져온 프로퍼티 정보가 메모리 같은곳에 있어서 문제 없을것 같은데
재시작이 필요한 경우는 GIT이나 Spring Cloud Configration 서버등에 중앙 관리 서버 장애시, 구동도 못하게 되는 상황이 연출되는지요?
spring-bootarchitecturespring-cloudJPAmsaKafka
Answer 1
5
Dowon Lee
Instructor
안녕하세요, 이도원입니다.
말씀하신 것처럼 GIT의 문제로 Spring Cloud Config가 사용되지 못할 가능성도 있습니다. 그래서 Git repository에 저장하는 것 이외, 설정 정보를 저장하기 위한 서비스를 따로 기동하기도 합니다. Etcd, Zookeeper, Consul 등의 외부 서비스를 사용하여 연동하기도 합니다. 이러한 서비스들은 다른 서버들과 같이 HA를 지원하며, 시스템의 다운타임에 대해 해결할 수 있는 기능 및 Standby 서버를 유지하고 있습니다.
추가로, user-service와 같은 마이크로서비스에서 config server와 연동이 되지 않을 경우에 시스템을 기동하지 못하게 하거나, 무시하고 기동되게(이 경우에는 대체 값을 사용할 수 있는 로직이 포함) 처리할 수 있습니다.
spring.cloud.config.fail-fast=true
위와 같은 설정을 통해 Exception과 함께 서비스가 중단되게 할 수 있으며, config에 문제가 생겼을 시, 재시도할 수 있도록 spring-retry(spring-aspects 도 필요) 라이브러리를 사용할 수 있습니다. (https://github.com/spring-projects/spring-retry)
감사합니다.





