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
Created: December 20, 2022