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

Spring Cloud 주요 모듈

서비스 등록 및 디스커버리

Eureka

  • 넷플릭스가 개발한 서비스 디스커버리 서버로 MSA에서 각 서비스의 위치를 동적으로 관리
  • 특징
    - 모든 서비스 위치를 저장하는 중앙 저장소
    - 서비스 상태를 주기적으로 확인하여 가용성을 보장

로드 밸런싱

Ribbon

  • 넷플릭스가 개발한 클라이언트 사이드 로드 밸런서로 서비스 간의 부하를 분산
  • 특징
    - 서비스 리스트 제공 : Eureka로 부터 서비스 리스트를 제공받아 로드 밸런싱에 사용
    - 로드 밸런싱 알고리즘 : 라운드 로빈, 가중치 기반 등 다양한 알고리즘 제공
    - Failover : 요청 실패 시 다른 인스턴스로 자동 전환

서킷 브레이커

Hystrix

  • 넷플릭스가 개발한 서킷 브레이커 라이브러리로, 서비스 간 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지
  • 특징
    - 서킷 브레이커 상태 : Closed, Open, half-open 상태를 통해 호출 실패 관리
    - Failback : 호출 실패 시 대체 로직을 제공하여 시스템 안정성 확보
    - 모니터링 : Hystrix Dashboard 를 통해 서킷 브레이커 상태 모니터링

Resilience4j

  • 자바 기반 경량 서킷 브레이커 라이브러리로, 넷플릭스 Hystrix의 대안으로 개발
  • 특징
    - 서킷 브레이커 : 호출 실패를 감지하고 서킷을 열어 추가 호출을 차단하여 시스템 부하를 줄임
    - Failback : 호출 실패 시 대체 로직을 실행하여 시스템의 안정성을 유지
    - 타임 아웃 설정 : 호출의 응답 시간을 성정하여 느린 서비스 호출에 대응
    - 재시도 : 재시도 기능으로 일시적은 네트워크 문제 등에 대응

Spring Cloud 구성 요소 활용

API Gateway

Zuul

  • 넷플릭스가 개발한 API Gateway, 모든 서비스 요청을 중앙에서 관리
  • 특징
    - 라우팅 : 요청 URL에 따라 적절한 서비스로 요청 전달
    - 필터 : 요청 전후에 다양한 작업을 수행할 수 있는 필터 체인 제공
    - 모니터링 : 요청 로그 및 메트릭을 통해 서비스 상태 모니터링 가능

Cloud Gateway

  • 스프링 클라우드에서 제공하는 API 게이트웨이로 MSA에서 필수적인 역할
  • 특징
    - 루팅 및 필터링 : 요청을 받아 특정 서비스로 라우팅하고 필요한 인증 및 권한 부여
    - 보안 : 외부 요청으로부터 애플리케이션을 보호, 보안 정책 적용
    - 효율성 : MSA에서 필요한 요청 처리 및 분산 환경의 관리를 효율적으로 수행

profile
모르면 알고 넘어가자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN