XML
로 되어있고 SOAPMSA (Micro-service Architecture)
SOA를 가볍게 만든 구조
컴포넌트는 서비스의 형태로 구현
API를 이용해 타 서비스와 연동
낮은 결합도(Loosely coupled)
기존의 모노리틱 구조를 개선
어플리케이션 로직을 분리, 여러 개의 어플리케이션으로 마이크로 서비스를 만들고
서비스 별로 로드밸런서를 연결하는 방식
모노리틱 구조와 MSA는 은행과 카드사로 비유할 수 있다.
이전에는 은행이라는 법인 회사 내부에 카드 담당 부서가 있었다. ---> (모노리틱 구조)
은행에서 우수고객 정보를 요청하면
카드 담당 부서는 복잡한 절차 없이 고객 정보를 공유했다.
서비스의 규모가 커지면서 은행과 카드사가 분리될 필요성이 생기고
이제 카드사는 독립적인 법인이 됐다. ----------------------------------> (MSA)
여전히 은행과 카드사는 같은 건물에 위치해있다.
회사는 달라졌지만 경비나 집행은 공동으로 진행한다.
하지만 법인이 달라졌기 때문에 상황은 조금 달라진다.
이제 다른 법인이 된 은행과 카드사에서
고객정보를 공유하기 위해서는 공문이 필요하다. ----------------------> API Gateway
MSA 단점
성능
메모리
테스팅 어려움
서비스간 트랜잭션 처리
분산형 거버넌스 (Governance)
API Gateway로 커버한다.
구현기술
트랜잭션
API 게이트웨이
스프링 클라우드 vs Kubernaetes
결론? 스프링 빈은 분산 컴포넌트 기술이다.
현재 과정은 Spring Bean을 배우고 있지만 결국 흐름에 따라 우리는 Spring MSA를 지향하게 될 것이다!
MSA는 따로 또 같이!
객체지향 -> 컴포넌트 -> 분산 컴포넌트 -> Spring Bean -> Spring MSA
더 공부하면 좋을 글
TIP
- Enterprise가 붙으면 서버에서 돌아간다는 거임.
- Spring 이전에는 EJB를 만들어서 사용했다.
- MSA에서 가장 중요한 것은 API Gateway의 퍼포먼스
- API Gateway도 컴포넌트다!
- 스프링으로 Zuul을 연동해서 뭘 해보면...?