Spring Cloud

RyECODING·2024년 8월 6일

MSA

목록 보기
2/15

✔️ 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
현업에선 Hystrix, Zuul로 개발된 상태가 꽤 많음. Spring은 버전 계속 업데이트됨.
현업에선 버전을 계속 올리는 게 고려사항이 많기 때문에 무리가 있음.(잘 돌아가는 것을 바꾸는 게 쉽지 않음)

✔️ Spring Cloud 주요 모듈

➤ 서비스 등록 및 디스커버리

▫️ Eureka

  • 넷플릭스가 개발한 서비스 디스커버리 서버
  • MSA에서 각 서비스의 위치를 동적으로 관리
  • 주요 특징
    • 서비스 레지스트리 : 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소
    • 헬스 체크 (Health check) : 서비스 인스턴스의 상태를 주기적으로 확인 -> 가용성 보장

➤ 로드 밸런싱

▫️ Ribbon

  • 넷플릭스가 개발한 로드 밸런서
  • 서비스 인스턴스 간의 부하를 분산
  • 주요 특징
    - 서버 리스트 제공자, 로드 밸런싱 알고리즘, Failover

➤ 서킷 브레이커

▫️ Hystrix

  • 넷플릭스가 개발한 서킷 브레이커 라이브러리
  • 서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성 유지
  • 주요 특징
    - 서킷 브레이커 상태, Fallback, 모니터링

▫️ Resilience4j

  • 자바 기반 경량 서킷 브레이커 라이브러리
  • 넷플릭스 Hystrix의 대안으로 개발됨
  • 주요 특징
    - 서킷 브레이커, Fallback, 타임아웃 설정, 재시도

✔️ Spring Cloud 구성 요소의 활용

➤ API 게이트웨이

▫️ Zuul

  • 넷플릭스가 개발한 API 게이트웨이
  • 모든 서비스 요청을 중앙에서 관리
  • 주요 특징
    - 라우팅, 필터, 모니터링

▫️ Cloud Gateway

  • 스프링 클라우드에서 제공하는 API 게이트웨이
  • MSA에서 필수적인 역할
  • 주요 특징
    - 루팅 및 필터링, 보안, 효율성

➤ 구성 관리

▫️ Spring Cloud Config

  • 분산된 환경에서 중앙 집중식 설정 관리 제공
  • 주요 특징
    - Config 서버, Config 클라이언트, 설정 갱신
profile
례코드

0개의 댓글