Skip to content

MSA 장단점

참고 자료

  • 김병부 - 스프링 부트로 개발하는 MSA 컴포넌트 1장 2절 - 마이크로서비스 아키텍처 소개

MSA 의 장점

  • 독립성 - 마이크로서비스는 하나의 기능을 담당하므로 다른 마이크로서비스와 간섭이 최소화 된다.
  • 대용량 데이터 처리 - 독립된 데이터 저장소로 인해 확장에 비교적 자유롭다.
  • 시스템 장애에 견고
  • 배포 주기가 빠르다
  • 확장성
  • 사용자 반응에 민접하게 대응할 수 있다. (Business Agility)

MSA 의 단점

  • 개발하기 어렵다
    • 분산 트랜잭션 고려
    • 데이터 통합을 위해 네트워크 커넥션, 커넥션 풀 고려
    • 장애 상황에 대비해 fallback 기능 고려 (circuit breaker 패턴)
  • 운영하기 어렵다.
    • 중앙화된 로깅, 추적은 관리하기 어렵다.
    • 로드밸런서, API GW, Message Queue 등 다양한 미들웨어 컴포넌트가 필요하다.
    • 운영/배포를 위해 컨테니어 오케스트레이션이 필요하다.
  • 설계하기 어렵다.
    • 마이크로 서비스의 경계와 크기에 대한 룰을 잡고 설계하는 것이 어렵다.
    • 서비스 세분화 원칙 - 비즈니스 기능/성능/메시지 크기/ 트랜잭션
    • DDD 의 바운디드 컨텍스트
    • 등을 고려해야한다.

Last update: March 4, 2023
Created: December 20, 2022