[MSA] MSA의 여러 패턴들 :: 매운코딩
728x90
300x250

1. Data Query 패턴

(1) API Aggregation - API 조합 패턴

필요 데이터를 얻기위해 여러개의 서비스 각각에 데이터를 요청하고 조합하여 집합체의 결과물을 만듦

 

(2) CQRS 패턴

조회(R)와 CUD를 분리하여 부하와 대기시간을 줄일 수 있음.

조회기능이 일반적으로 가장 많이 쓰이기에 조회기능API에 대해서 scale-out을 한다.

 

2.가시성 패턴

App.의 실시간 Metric(노드나 서비스의 상태정보) 정보를 수집, 통합하여 현재 상태 모니터링 및 이상증후 감지

모니터링,로깅을 해결하기 위한 패턴

로깅,메트릭의 중앙집중 및 필터링 등을 통한 한곳에서의 모니터링

사용자가 직접 어떻게 할것인지 매트릭스를 정의한다.

 

3.신뢰성 패턴

MSA 설계하며, 분리.분해로 떨어진 신뢰성을 해결하기 위함

회복성 보장을 위한 패턴으로, 장애 복구, 자가치유, 무정지 배포등을 구현하기 위한 패턴들이 속함

 

(1) Circuit Breaker

원격 서비스  장애로 인한 응답 지연시에 호출을 일시적으로 차단하여 장애 확산을 막음

장애 전파를 막고 피해를 최소화 하기 위한 패턴

e.g. 타임아웃이 발생하면 retry하지 않고 즉시 fail처리하고 fallback처리한다.

또는 조건에 따라 실패를 간주하고 fail처리할수도있다. 10초동안 100번의 500에러 발생시..등

A--> B --> C에서 C에서 에러가나서 B가 500에러를 받는다면 써킷브레이커가 동작하여

A에는 적어도 장애가되지않게 200을 보내면서 장애상황에 대해 공유해준다.

써킷브레이커는 계속 헬스체크를 하면서 해결되었다면 해제됨.

 

4. 디스커버리 패턴

서버,컨테이너들의 상태가 정상인지 체크하고 오류라면 죽이고 새로만드는등의 로직을 처리

Liveness Probe : 모듈이 정상적으로 동작중인지 상태 자체를 확인함

Redniess Probe :  모듈이 정상적인지 계속해서 헬스체크를 보내고 응답받으며 체크중

728x90

+ Recent posts