학습 목표
Spring Cloud와 Spring Cloud의 주요 기능 학습하기
Spring Cloud란?
스프링 부트를 기반으로 마이크로서비스 아키텍처(MSA) 를 쉽게 구축하고 관리하도록 도와주는 툴 모음
주요 기능과 대표 도구들
- 서비스 등록 및 디스커버리: Eureka, Consul, Zookeeper
- 로드 밸런싱: Ribbon, Spring Cloud LoadBalancer
- 서킷 브레이커: Hystrix, Resilience4j
- API 게이트웨이: Zuul, Spring Cloud Gateway
- 구성 관리: Spring Cloud Config
- 분산 추적: Spring Cloud Sleuth, Zipkin
- 메시징: Spring Cloud Stream
서비스 디스커버리
- 서비스 디스커버리는 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능
- 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회하여 통신
- 주요 기능으로는 서비스 등록, 서비스 조회, 헬스 체크 등이 있음
로드 밸런싱 (Load Balancing)
- 요청을 여러 서버에 골고루 나눠주는 역할 = 분산 처리
서킷브레이커 (Circuit Breaker)
- 문제 생긴 서비스로 계속 요청 보내서 전체가 터지는 걸 막는 보호장치 (실패 전파를 막음)
API 게이트웨이 (API Gateway)
- 모든 외부 요청이 먼저 거치는 관문(Gate)
- 클라이언트와 내부 서비스 사이의 공통 기능 중앙화
Spring Cloud 주요 모듈
서비스 등록 및 디스커버리
Eureka
넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리
주요 특징:
- 서비스 레지스트리: 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소
- 헬스 체크(Health check): 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장
로드 밸런싱
Ribbon
- 넷플릭스가 개발한 클라이언트 사이드 로드 밸런서로, 서비스 인스턴스 간의 부하를 분산
- 주요 특징:
- 서버 리스트 제공자: Eureka로부터 서비스 인스턴스 리스트를 제공받아 로드밸런싱에 사용
- 로드밸런싱 알고리즘: 라운드 로빈 알고리즘 지원, 가중치 기반 등 다양한 로드 밸런싱 알고리
- Failover: 요청 실패 시 다른 인스턴스로 자동 전환

“Feign Client(페인 클라이언트)”
Spring Cloud에서 제공하는 HTTP 클라이언트로, 다른 마이크로서비스나 외부 API를 쉽게 호출할 수 있도록 도와주는 도구
REST API 호출을 Java 인터페이스처럼 간단하게 사용할 수 있게 해주는 라이브러리
유레카
- 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리
- 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장
- 여러 인스턴스를 지원하여 고가용성을 유지할 수 있음
Eureka의 고가용성 구성
Product App을 많은 사람이 요청하여 서비스가 부하를 견디지 못할 때
여러개의 Product app을 둬서 호출을 분산
→ 이것을 클러스터 구성이라고 함
즉, 여러 개의 서버를 둬서 부하를 분산시키는 것
클러스터 구성
- Eureka 서버의 고가용성을 위해 여러 인스턴스를 구성할 수 있음
- 다중 인스턴스로 구성하여 고가용성을 유지하며, 각 인스턴스는 서로를 피어로 등록하여 상호 백업
- Eureka 서버를 다중 인스턴스로 구성할 때 각 서버의 피어 설정을 통해 서로를 인식하고 백업할 수 있음
오늘의 코멘트
MSA 공부를 위해 Spring Cloud의 개념에 대해서 알아보았다.
실습도 중요하지만 실습에 앞서 기본 개념을 탄탄히 다지는 것이 중요한 것 같다.
처음 접해보는 개념인 만큼 반복해서 보고 학습해야 겠다.
'Architecture&Pattern > MSA' 카테고리의 다른 글
| SAGA 패턴과 Saga Orchestration (0) | 2025.11.27 |
|---|---|
| 251022 (수) MSA - Config 서버와 이벤트 드리븐 [개념] (0) | 2025.10.22 |
| 251020 (월) MSA 요청과 응답의 흐름, 서킷 브레이커 (0) | 2025.10.20 |