본문 바로가기
Study/etc

MSA(Microservice Architecture)란?

by bang-geus 2024. 8. 4.

마이크로 서비스 아키텍처란 애플리케이션 개발을 위한 아키텍처 스타일을 의미합니다.

마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있습니다.

마틴 파울러는 마이크로서비스에 대해 다음과 같이 정의하였다.

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://velog.io/@mrcocoball2/MSA-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-1.-MSA%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

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