마이크로 서비스 아키텍처란 애플리케이션 개발을 위한 아키텍처 스타일을 의미합니다.
마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있습니다.
마틴 파울러는 마이크로서비스에 대해 다음과 같이 정의하였다.
1. 마이크로서비스느 여러 개의 작은 서비스 집합으로 개발하는 접근 방법
2. 각 서비스는 개별 프로세스에서 실행되고 HTTP 자원 API 같은 가벼운 수단을 사용해 통신할 수 있다.
3. 서비스는 비즈니스 기능 단위로 구성되고 자동화된 배포방식을 이용하여 독립적으로 배포된다.
4. 서비스에 대한 중앙 집중적인 관리는 최소화하고 각 서비스는 서로 다른 언어와 데이터, 저장 기술을 사용할 수 있다.
MSA 구조
이미지 참고 : https://dobby-isfree.tistory.com/235
MSA 장점과 단점
장점
- 각각의 서비스는 모듈화가 되어있으며 이러한 모듈끼리는 RPC** 또는 message-driven API **등을 이용하여 통신한다.
- MSA는 각각 개별의 서비스 개발을 빠르게하며, 유지보수도 쉽게 할 수 있도록 한다.
-서비스 별로 독립적인 배포가 가능하다. 따라서 지속적인 배포 CD도 모놀로식에 비해 가볍게 할 수 있다.
단점
- MSA는 모놀리식에 비해 상대적으로 많이 복잡하다.
- 서비스가 모두 분산되어 있기 때문에 개발자는 내부 시스템의 통신을 어떻게 가져가야 할지 반드시 표준 정의가 되어 있어야 한다.
- 통신의 장애와 서버의 부하 등이 있을 경우 어떻게 transaction을 유지할 지 결정하고 구현해야 한다.
Message Driven : 각각의 컴포넌트가 특정한 주소를 가지고, 다른 컴포넌트도 메세지를 보낼 수 있는 구조.
RCP (Remote Procedure Call) : 원격 컴퓨터나 프로세스에 존재하는 함수를 호출하는데 사용하는 프로토콜로, 원격지의 프로세스를 동일 프로세스의 함수를 호출하는 것 처럼 사용하는 것을 말한다.
참고 사이트
https://jins-dev.tistory.com/entry/RPC-Remote-Procedure-Call-%EC%9D%98-%EA%B0%9C%EB%85%90
https://dobby-isfree.tistory.com/235
https://mydream72.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%B3%B4%EB%8B%88-MSA%EB%9E%80
'Study > etc' 카테고리의 다른 글
apexchart.js (0) | 2024.07.29 |
---|