1 분 소요

Spring Cloud란 기존의 모놀리스 방식이 아닌, 각각의 기능을 독립적으로 개발하기 위한 마이크로 서비스 아키텍쳐(MSA)를 지원하기 위한 프레임워크이다.

https://spring.io/projects/spring-cloud

Spring Boot + Spring Cloud

스크린샷 2022-09-24 오전 12 47 51
사용하고 있는 Spring Boot의 버전에 맞는 Spring Cloud 버전을 사용해야 한다.

Spring Cloud

Main Projects

스크린샷 2022-09-24 오전 12 50 30
스프링 클라우드는 위 사진에서 보이는 것처럼 다양한 서비스를 지원한다.
이 후 실습에서는 이 중,

  • Spring Cloud Config
  • Spring Cloud Netflix
  • Spring Cloud Security
  • Spring Cloud Sleuth
  • Spring Cloud Starters
  • Spring Cloud Gateway
  • Spring Cloud OpenFeign

위 서비스들을 이용해볼 예정이다.

Spring Cloud를 이용해 어플리케이션을 구축할 때 기본적으로 어떤 내용을 구성해야하고, 어떤 서비스가 사용되어야 할까?

1. Spring Cloud Config Server

Spring Cloud Config Server는 환경설정을 하기 위해 필요하다.
스크린샷 2022-09-24 오전 1 16 56
Spring Cloud Config Server를 이용해 개발하게 되면,
위 사진에서 보이는 것처럼 다양한 마이크로 서비스로 인해 사용할 수 있는 어떠한 정보를 Spring Cloud Config Server를 통해,
외부 저장소에 환경설정 정보를 저장할 수 있다.
나머지 마이크로 서비스에서는 외부 저장소에 있는 데이터 값을 참조한다.

마이크로 서비스 내에 변경사항이 생기더라도, 마이크로 서비스를 다시 빌드하고 배포하는 것이 아니라,
외부 저장소(Git)에 있는 정보만 변경한다면, 모두 적용될 수 있다.

2. Naming Server (Eureka)

Netflix의 Eureka 서버를 사용하게되면, 서비스의 등록하고 위치정보를 확인할 수 았다.

3. Ribbon (Client Side), Spring Cloud Gateway

스크린샷 2022-09-24 오전 1 28 23
Netflix의 Eureka와 더불어,
서버에 들어온 요청 정보를 분산하기 위한 용도로써,로드밸런싱 기능 혹은 게이트웨이 기능으로,
Ribbon과 Spring Cloud Gateway를 사용할 수 있다.
최신 스프링 클라우드 버전에서는 주로 Spring Cloud Gateway 사용을 권장한다.

위 사진은 Ribbon의 사진이기는 하지만,
외부에 있는 클라이언트 정보라던가 서비스의 정보가, 게이트웨이(Ribbon)를 통과해 다른 마이크로 서비스로 옮겨가는 것을 확인할 수 있다.
게이트웨이 서비스도 NamingServer에 등록하여 위치를 검색하는 용도로 사용할 수 있다.

4. FeignClient

각각의 마이크로 서비스 간 통신을 위해서는 REST 템플릿이나 페인(Feign) 클라이언트를 이용해 데이터 통신을 하게 될 것이다.

5. Zipkin, ELK

시각화와 모니터링, 혹은 로그 추척 등을 위해서는 Zipkin이라던가 외부 모니터링 서비스(ELK)를 연계해 사용할 수 있다.

6. Hystrix

Netflix의 Hystrix를 사용해, 장애가 발생했을 때 빠르게 복구하기 위한 회복성 패턴을 구현할 수 있다.



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기