MSA

hsso_o·2024년 7월 30일
0

스터디

목록 보기
35/44

[Full] 전자정부 표준 프레임워크 기반 클라우드 네이티브 애플리케이션 설계 Part 2 : MSA의 구현

마이크로서비스 아키텍처 (MSA)

  • 대규모 애플리케이션을 작은 독립적인 서비스들로 나누어 개발하고 운영하는 방식
  • 각 마이크로서비스는 독립적으로 배포, 확장, 유지보수할 수 있으며, 특정 비즈니스 기능을 담당

특징

  • 독립 배포: 각 마이크로서비스는 독립적으로 배포 및 운영
  • 폴리글랏 프로그래밍: 각 서비스는 서로 다른 프로그래밍 언어와 데이터 저장소를 사용 가능
  • 단일 책임 원칙: 각 서비스는 하나의 비즈니스 기능에 집중
  • 작은 규모: 각 서비스는 작고 관리하기 쉬운 크기로 유지
  • API 통신: 서비스 간의 통신은 주로 HTTP/REST, gRPC, 메시지 큐 등을 통해 이뤄짐

장점

  • 유연한 확장성: 필요에 따라 특정 서비스만 확장 가능
  • 높은 가용성: 개별 서비스의 장애가 전체 시스템에 영향을 주지 않도록 설계 가능
  • 독립적 개발: 서비스별로 독립적인 개발 팀이 작업 가능

단점

  • 복잡성 증가: 서비스 간의 통신 및 데이터 일관성 유지가 어려울 수 있음
  • 배포 및 운영 부담: 서비스가 많아지면 배포 및 운영 관리가 복잡함

사용 사례

  • 대규모 분산 시스템: 다양한 기능을 제공하는 대규모 애플리케이션.
  • 빈번한 업데이트: 각 서비스가 자주 업데이트되고 배포되어야 하는 경우.
  • 다양한 기술 스택 요구: 다양한 프로그래밍 언어와 데이터 저장소를 사용해야 하는 경우.

Saga 패턴

  • 분산 트랜잭션 환경에서 메세지 또는 이벤트를 주고 받으며 서비스 간의 데이터 일관성을 지키는 패턴
  • 로컬 트랜잭션을 사용하며 트랜잭션이 실패되면 변경된 내용을 취소하는 보상 트랜잭션을 발행해 일관성 유지

서킷 브레이커 패턴

  • 소프트웨어 시스템에서 장애를 격리하고 복구를 촉진하는 데 사용되는 디자인 패턴

  • 서비스 간의 호출이 실패했을 때, 시스템 전체에 영향을 주지 않고 빠르게 복구 가능

  • 서비스 호출 중에 일정 횟수 이상 실패가 발생하면, 서킷 브레이커는 "차단(open)" 상태로 전환되어 추가적인 호출을 차단

  • Fallback

    • 서비스 호출이 실패할 때 대신 실행되는 대체 경로 또는 방법을 의미

들으면서 정리하다가,,,약간 실패해버린,,,

profile
아뇨 소혠데요-

0개의 댓글