공식 : https://spring.io/projects/spring-cloud
Spring Cloud
Spring Cloud is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio a BOM (Bill of Materials) is published with a curated set of dependencies on the individual project. Go here to r
spring.io
스프링 클라우드는 마이크로 서비스를 구성하기 위한 분산 시스템 개발에 효과적인 기능을 제공해준다. 분산 시스템이라고 하면 circuit breakers, routing, proxy, load balancing 등이 있다. 따라서, 개발자는 스프링 클라우드를 이용해서 쉽고 빠르게 서비스를 개발할 수 있다.
스프링 클라우드는 스프링 부트와 함께 사용된다. 그러므로 스프링 클라우드 버전과 호환되는 스프링 부트 버전을 잘 확인해야 한다.
그러면 스프링 클라우드를 이용해서 어플리케이션을 구축하려고 할 때 기본적으로 어떤 내용을 구성해야 하는 지 어떤 서비스가 사용되어야 하는 지에 대해 정리를 해보자.
1. 환경설정 관리( configuration management ) : Spring Cloud Config Server

환경설정을 독립적으로 관리할 수 있다. 다양한 서비스에서 사용하는 환경 설정을 SpringCloudConfigServer를 통해서
외부 저장소( Git )에 저장할 수 있다. 그러면 Git에 저장된 환경 설정을 변경하는 것으로 모든 서비스에 공통된 환경설정을
일일이 배포할 필요가 없게 된다. 즉 유지보수가 월등히 쉬워진다는 장점이 있다.
2. Naming Server( Eureka ) & 로드밸런싱( Spring Cloud GateWay )

외부 또는 내부의 서비스에서 오는 요청이 스프링 클라우드 게이트웨이를 통해서 원하는 서비스를 찾아갈 수 있게 된다. 여기서 naming server는 찾고자 하는 서비스의 위치를 저장하고 있다.
3. 각각의 마이크로 서비스간 데이터 통신을 위한 FeignClient
4. 분산 서비스 시각화 및 모니터링, 로그 추적 : Zipkin Distributed Tracing, Netflix API gateway, ELK..
5. 장애 발생시 복구 : Hystrix
!! 위 내용은 Dowon Lee 님의 "Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)" 강의를 참고하여 정리한 글입니다
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의
Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해
www.inflearn.com
'MSA' 카테고리의 다른 글
| Spring Cloud Config & Spring Cloud Bus 간단정리 (0) | 2022.10.20 |
|---|---|
| API Gateway 간단 정리 (0) | 2022.10.19 |
| Spring Cloud Netflix Eureka 간단 정리 (0) | 2022.10.14 |
| Anti-Fragile, Cloud Native Architecture 간단 정리 (0) | 2022.10.14 |