취미겸생업

[Spring boot] MSA, Spring Cloud 개요 본문

IT/Spring Boot

[Spring boot] MSA, Spring Cloud 개요

nohumb 2026. 6. 24. 15:44
SMALL

MSA

기존 모놀리식 아키텍처

정의

모놀리식과 MSA

  • 모놀리식 아키텍처는 하나의 큰 코드베이스로 구성된 애플리케이션
  • 모든 기능이 하나의 애플리케이션 내에 포함

특징

  • 장점
    • 간단한 배포: 모든 코드가 하나의 코드베이스에 포함되어 있어 배포가 단순
    • 단일 데이터베이스: 하나의 데이터베이스를 사용하여 데이터 일관성을 쉽게 유지할 수 있음
  • 단점
    • 확장성 부족: 특정 기능을 확장하려면 전체 애플리케이션을 확장해야함
    • 긴 개발 주기: 작은 변경 사항도 전체 애플리케이션을 다시 배포해야함
    • 유연성 부족: 새로운 기술 도입이 어렵고, 특정 모듈에 종속적임

MSA 개요

Micro Services Architecture(MSA)

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

주요 특징

  • 장점
    • 확장성: 각 서비스는 독립적으로 확장 가능, 특정 기능에 대한 성능 최적화가 용이
    • 작은 팀 구성: 각 서비스는 작은 팀이 독립적으로 개발하고 관리할 수 있음
    • 독립적 배포: 개별 서비스의 변경 사항을 독립적으로 배포할 수 있음
    • 유연성: 서비스별로 적합한 기술 스택을 선택할 수 있음
  • 단점
    • 복잡성: 서비스 간 통신, 데이터 일관성 유지, 트랜잭션 관리 등의 복잡성이 증가
    • 운영비용: 각 서비스의 모니터링, 로깅, 장애 대응 등을 개별적으로 관리해야 하므로 운영 비용이 증가
    • 데이터 관리: 분산된 데이터베이스로 인해 데이터 일관성 유지가 어려울 수 있음
    • 네트워크 지연: 서비스 간의 통신이 네트워크를 통해 이루어지므로 지연 시간이 발생할 수 있음

Spring Cloud

Spring Cloud 개요

Spring Cloud란

Spring Cloud MSA

  • 정의
    • MSA 개발을 위해 다양한 도구와 서비스를 제공하는 스프링 프레임워크의 확장
    • 마이크로서비스 아키텍처를 쉽게 구현하고 운영할 수 있도록 도움
  • 주요 기능
    • 서비스 등록 및 디스커버리: Eureka, Consul, Zookeeper
    • 로드 밸런싱: Spring Cloud LoadBalancer, Ribbon
    • 서킷 브레이커: Resilience4j, Hystrix
    • API 게이트웨이: Spring Cloud Gateway, Zuul
    • 구성 관리: Spring Cloud Config
    • 분산 추적: Spring Cloud Micrometer, Zipkin, Sleuth,
    • 메시징: Spring Cloud Stream

주요 모듈

  • Eureka (서비스 등록 및 디스커버리)
    • 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리
    • 주요 특징
      • 서비스 레지스트리: 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소
      • 헬스 체크(Health check): 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장

https://nohumbit.tistory.com/45

 

[Spring boot] Spring Cloud 서비스 디스커버리 (Eureka)

서비스 디스커버리 (Eureka)마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능으로, 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회

nohumbit.tistory.com

 

  • Spring Cloud LoadBalancer (로드 밸런싱)
    • 단종된 Ribbon을 대체하여 스프링 진영이 직접 개발한 클라이언트 사이드 로드 밸런서
    • 주요 특징
      • 비동기/논블로킹 지원: Spring WebFlux 및 WebClient와 완벽히 호환되는 가벼운 아키텍처
      • 유레카 연동: Eureka 레지스트리로부터 최신 인스턴스 리스트를 동적으로 받아와 라운드 로빈 등의 알고리즘으로 부하 분산

https://nohumbit.tistory.com/46

 

[Spring boot] Spring Cloud 로드밸런싱

로드밸런싱로드 밸런싱이란네트워크 트래픽을 여러 서버로 분산, 특정 서버에 부하가 집중되는 것을 방지해 안정성 및 성능 향상클라이언트 사이드 로드 밸런싱클라이언트가 서버 목록을 갖고

nohumbit.tistory.com

 

  • Resilience4j (서킷 브레이커)
    • 단종된 Hystrix를 완전히 대체하는 자바 8 함수형 프로그래밍 기반의 경량 결함 허용 라이브러리
    • 주요 특징
      • 서킷 브레이커: 하위 서비스의 호출 실패율이 임계치를 넘으면 서킷을 열어(Open) 연쇄 장애를 차단
      • 폴백(Fallback): 호출 실패나 서킷 오픈 시 미리 정의된 대체 로직을 실행하여 시스템 안정성 유지
      • 모듈화 구성: 서킷 브레이커 외에도 재시도(Retry), 속도 제한(RateLimiter), 자원 격리(Bulkhead)를 필요한 만큼 골라 사용 가능

https://nohumbit.tistory.com/47

 

[Spring boot] Resilience4j 서킷 브레이커

서킷 브레이커 (Resilience4j)서킷 브레이커란마이크로서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지하는 패턴외부 서비스 호출 실패 시 빠른 실패를 통해 장애를 격리하고,

nohumbit.tistory.com

 

  • Spring Cloud Gateway (API 게이트웨이)
    • 단종된 Zuul을 대체하는 스프링 공식 API 게이트웨이로, 마이크로서비스 전면에서 모든 진입 요청을 중앙 관리
    • 주요 특징
      • 고성능 라우팅: Spring WebFlux 기반의 비동기/논블로킹 구조로 대규모 트래픽을 효율적으로 라우팅
      • 조건부 필터링(Predicates & Filters): 요청 전후에 작동하는 필터 체인을 통해 공통 인증, 권한 부여, 헤더 조작을 수행
      • 복합 모니터링: 분산 추적(Micrometer) 및 메트릭 라이브러리와 결합하여 관문 통과 트래픽의 모니터링 기능 제공

https://nohumbit.tistory.com/50

 

[Spring boot] Spring Cloud Gateway (API 게이트웨이)

Spring Cloud Gateway (API 게이트웨이)API 게이트웨이란클라이언트의 요청에 대한 단일 진입점으로 내부 서비스로 라우팅보안, 로깅, 모니터링, 요청 필터링 등을 처리Spring Cloud Gateway(SCG)란Spring 프로젝

nohumbit.tistory.com

  • Spring Cloud Config (구성 관리)
    • 분산된 환경에서 중앙 집중식 설정 관리를 제공
    • 주요 특징:
      • Config 서버: 중앙에서 설정 파일을 관리하고 각 서비스에 제공
      • Config 클라이언트: Config 서버에서 설정을 받아서 사용하는 서비스
      • 설정갱신: 설정 변경 시 서비스 재시작 없이 실시간으로 반영

https://nohumbit.tistory.com/48

 

[Spring boot] Spring Cloud Config

Spring Cloud ConfigSpring Cloud Config란분산 시스템 환경에서 중앙 집중식 구성 관리를 제공하는 프레임워크로, 설정을 중앙에서 관리하고, 변경 사항을 실시간으로 반영할 수 있음Git, 파일 시스템, JDBC

nohumbit.tistory.com

 

  • Spring Cloud Micrometer/Zipkin (분산추적)
    • MSA와 같은 분산 시스템에서 서비스 간의 요청 흐름을 추적하고 모니터링
    • 각 서비스의 호출 관계와 성능을 시각화하여 각 서비스의 호출 흐름을 명확히 파악하고, 성능 병목이나 오류를 빠르게 진단

https://nohumbit.tistory.com/49

 

[Spring boot] Spring Cloud 분산 추적 (Micrometer, Zipkin)

Spring Cloud Micrometer 및 Zipkin분산추적 개념MSA와 같은 분산 시스템에서 서비스 간의 요청 흐름을 추적하고 모니터링하는 방법각 서비스의 호출 관계와 성능을 시각화하여 각 서비스의 호출 흐름을

nohumbit.tistory.com

 

LIST