MSA와 Spring Cloud 이해하기

2024. 8. 17. 15:51·Spring
728x90
반응형

 

 

MSA

 

Microservices Architecture (MSA) : MSA는 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는 소프트웨어 아키텍처 스타일. 각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 배포되고 확장 될 수 있음. 서비스 간의 통신은 주로 HTTP/HTTPS, 메시지 큐 등을 통해 이루어짐.

 


 

Spring Cloud

 

Spring Cloud : 마이크로서비스 개발을 위해 다양한 도구와 서비스를 제공하는 스프링 프레임워크의 확장.

주요 기능

  • 서비스 등록 및 디스커버리 : Eureka, Consul, Zookeeper
  • 로드 밸런싱 : Ribbon, Spring Cloud LoadBalancer
  • 서킷 브레이커 : Hystrix, Resilience4j
  • API 게이트웨이 : Zuul, Spring Cloud Gateway
  • 구성 관리 : Spring Cloud Config
  • 분산 추적 : Spring Cloud Sleuth, Zipkin
  • 메시징 : Spring Cloud Stream

 

Eureke

넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리.

  • 서비스 레지스트리 : 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소
  • 헬스 체크 : 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성 보장

 

Ribbon

넷플릭스가 개발한 클라이언트 사이드 로드 밸런서로, 서비스 인스턴스 간의 부하를 분산.

  • 서버 리스트 제공자 : Eureka 로부터 서비스 인스턴스 리스트를 제공받아 로드 밸런싱에 사용
  • 로드 밸런싱 알고리즘 : 라운드 로빈, 가중치 기반 등 다양한 로드 밸런싱 알고리즘 지원
  • Failover : 요청 실패 시 다른 인스턴스로 자동 전환

 

Hystrix

넷플릭스가 개발한 서킷 브레이커 라이브러리로, 서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성 유지.

  • 서킷 브레이커 상태 : 클로즈드, 오픈, 하프-오픈 상태를 통해 호출 실패를 관리
  • Failback : 호출 실패 시 대체 로직을 제공하여 시스템 안정성 확보
  • 모니터링 : Hsterix Dashboard를 통해 서킷 브레이커 상태 모니터링

 

Resilience4j

자바 기반의 경량 서킷 브레이커 라이브러리로, 넷플릭스 Hystrix의 대안으로 개발.

  • 서킷 브레이커 : 호출 실패를 감지하고 서킷을 열어 추가적인 호출을 차단하여 시스템의 부하를 줄임.
  • Failback : 호출 실패 시 대체 로직을 실행하여 시스템의 안정성 유지
  • 타임아웃 설정 : 호출의 응답시간을 설정하여 느린 서비스 호출에 대응할 수 있음
  • 재시도 : 재시도 기능을 지원하여 일시적인 네트워크 문제 등에 대응할 수 있음

 

Zuul

넷플릭스가 개발한 API 게이트웨이로, 모든 서비스 요청을 중앙에서 관리.

  • 라우팅 : 요청 URL에 따라 적절한 서비스로 요청 전달
  • 필터 : 요청 전후에 다양한 작업을 수행할 수 있는 필터 체인 제공
  • 모니터링 : 요청 로그 및 메트릭을 통해 서비스 상태 모니터링 할 수 있음

 

Cloud Gateway

클라우드 게이트웨이는 스프링 클라우드에서 제공하는 API 게이트웨이로, 마이크로서비스 아키텍처에서 필수적인 역할.

  • 루팅 및 필터링 : 요청을 받아 특정 서비스로 라우팅하고 필요한 인증 및 권한 부여를 수행
  • 보안 : 외부 요청으로부터 애플리케이션을 보호하고, 보안 정책 적용
  • 효율성 : 마이크로서비스 아키텍처에서 필요한 요청 처리 및 분산 환경의 관리를 효율적으로 수행

 

Spring Cloud Config

Spring Cloud Config는 분산된 환경에서 중앙 집중식 설정 관리를 제공.

  • Config 서버 : 중앙에서 설정 파일을 관리하고 각 서비스에 제공
  • Config 클라이언트 : Config 서버에서 설정을 받아서 사용하는 서비스
  • 설정 갱신 : 설정 변경 시 서비스 재시작 없이 실시간으로 반영

 

728x90
반응형
저작자표시 비영리 변경금지

'Spring' 카테고리의 다른 글

클라이언트 사이드 로드 밸런싱 FeignClient와 Ribbon 이해하기  (0) 2024.08.17
서비스 디스커버리 Eureka 서버 이해하기 및 실습  (0) 2024.08.17
Spring의 RestTemplate 이해하기  (0) 2024.08.17
Spring 데이터 검증 (Validation)하기  (0) 2024.08.17
Spring Security 접근 불가 페이지 만들기  (0) 2024.08.17
'Spring' 카테고리의 다른 글
  • 클라이언트 사이드 로드 밸런싱 FeignClient와 Ribbon 이해하기
  • 서비스 디스커버리 Eureka 서버 이해하기 및 실습
  • Spring의 RestTemplate 이해하기
  • Spring 데이터 검증 (Validation)하기
waVwe
waVwe
    반응형
  • waVwe
    waVwe 개발 블로그
    waVwe
  • 전체
    오늘
    어제
    • ALL (184)
      • Python (1)
      • Spring (15)
      • DevOps (10)
      • Git (6)
      • JAVA (4)
      • C (22)
      • 코테 문제 풀이 (124)
        • 프로그래머스 (43)
        • 백준 (2)
        • 정올 (64)
        • SW Expert Academy (1)
        • 온코더 oncoder (14)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 🐙 Github
  • 공지사항

  • 인기 글

  • 태그

    깃
    깃헙
    스프링부트
    자바
    내일배움캠프
    java
    연결리스트
    progate
    docker
    형변환
    도커
    이진트리
    아파치카프카
    스프링
    devops
    스파르타코딩
    Til
    자료구조
    while문
    C
    정올
    springboot
    알고리즘
    프로그래머스
    코테
    MSA
    CI/CD
    스파르타코딩클럽
    온코더
    C언어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
waVwe
MSA와 Spring Cloud 이해하기
상단으로

티스토리툴바