마이크로서비스 정의
마이크로서비스 목표
마이크로서비스 아키텍처는 두 가지 목표를 달성하고자 일체형 애플리케이션을 작은 컴포넌트로 나누는 것
- 빠르게 개발해 지속적으로 배포
- 수동 혹은 자동으로 쉽게 스케일링
즉, 마이크로서비스는 독자적인 업그레이드와 스케일링이 가능한 독립 소프트웨어 컴포넌트
독립 컴포넌트로 동작하려면, 다음과 같은 기준 유지 필요
- 아무것도 공유하지 않는 아키텍처를 유지, 데이터베이스의 데이터를 공유하지 않음
- 명확한 인터페이스를 통해서만 통신
- 개별적인 런타임 프로세스로 배포
- 마이크로서비스 인스턴스는 Stateless.
마이크로서비스의 문제
- 동기식 통신을 사용하는 다수의 소형 컴포넌트의 연쇄 장애
- 다수의 소형컴포넌트를 최신 상태로 유지가 어려움
- 많은 컴포넌트가 관여하는 요청은 추적이 어려움
- 컴포넌트 수준의 하드웨어 자우너 사용량 분석의 어려움
- 다수의 소형 컴포넌트를 수동으로 구성하고 관리하는 데 비용이 많이 들고 오류 발생
마이크로서비스 디자인 패턴
- 서비스 검색
- 에지 서버
- 리액티브 마이크로서비스
- 구성 중앙화
- 로그 분석 중앙화
- 분삱 추적
- 서킷 브레이커
- 제어 루프
- 모니터링 및 경고 중앙화
이 디자인 패턴들을 구현한 오픈소스들이 여러가지가 있는데, 그것들을 구성해나가보자..
'Books > 스프링으로 하는 마이크로서비스 구축' 카테고리의 다른 글
3. 공조 마이크로서비스 집합 생성 (0) | 2024.05.12 |
---|---|
2. 스프링 부트 소개 (0) | 2024.05.06 |
0. MSA 공부 시작 (0) | 2024.05.06 |