1. MSA란
- 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는 소프트웨어 아키텍처 스타일
- 각 서비들은 특정 비지니스 기능을 수행하며, 서로 독립적으로 배포되고 확장
- 서비스 간의 통신은 주로 HTTP/HTTPS. 메시지 큐 등을 통해 이루어짐
1-2. MSA 구조 장단점
장점
- 확장성
- 각 서비스는 독립적으로 확장 가능
- 특정 기능에 대한 성능 최적화가 용이
- 유연성
- 다양한 기술 스택을 사용하여 서비스별 최적화 가능
- 독립적 배포
- 서비스별로 독립적 배포가 가능하여 배포 주기 단축
- 작은 팀 구성
- 서비스별 작은 팀으로 구성되어 민첩한 개발 가능
단점
- 복잡성
- 서비스 간 통신, 데이터 일관성 유지, 트랜잭션 관리 등의 복잡성 증가
- 운영비용
- 각 서비스의 모니터링, 로깅, 장애 대응 등을 개별적으로 관리해야 하여 운영 비용 증가
- 네트워크 지연
- 서비스 간의 통신이 네트워크를 통해 이루어지미르 지연 시간 발생
2. Spring Cloud
Spring Cloud 개요
Spring Cloud란