MSA & MA

leehyunjon·2022년 11월 9일
0

Infra

목록 보기
1/2
post-thumbnail

Monolitic Architecture

출처

MA란, 하나의 서버에서 클라이언트로 부터의 모든 요청을 처리하고 반환하는 역할을 수행합니다.
즉, 하나의 거대한 애플리케이션에서 모든것을 처리하는 아키텍처를 뜻합니다.

장점

  • 모든 기능이 하나의 환경에서 수행되기 때문에 복잡하지 않다.
  • 하나의 war를 배포하면 모든 기능이 동작되기 때문에 쉽게 배포할 수 있다.

단점

  • 특정 모듈에 문제가 발생하면 서비스 전체에 영향을 미칠 수 있습니다.
  • 서비스 규모가 커질수록 배포시간이 길어집니다.
  • 트래픽이 증가하면 대응이 어렵습니다.
  • 특정 기능을 scale-out하려고할때 불필요한 기능까지 함께 scale-out되어 리소스가 낭비될 수 있습니다.

Micro Service Architecture

출처

MSA란, 프로젝트의 기능들이 느슨한 결합을 가지기 위해 독립적인 모듈로 분리하여 서비스를 제공하는 아키텍처입니다.

쇼핑몰에서 검색과 제품정보, 리뷰 등을 보여주는 서비스를 제공할때, 검색 서버, 제품 서버, 리뷰 서버 등 여러 서버로 분리하여 서비스를 제공하는 것이라고 보면 됩니다.

만약 리뷰 서비스를 제공하는 서버가 고장났다고 하면, 검색과 제품 서비스 기능을 제공되지만 리뷰 서비스만 사용에 제약이 따를뿐 쇼핑몰 전체 서비스를 이용하는데 문제가 발생하지 않게 되는데 이는 MSA로 구성되어있기 때문입니다.

장점

  • 상호 의존적이지 않기 때문에 각 모듈들이 다른 언어와 환경에서 개발할 수 있습니다.
  • 서버가 독립적이기 때문에 특정 서버에서 문제가 발생하여도 다른 서버에 영향을 미치지 않습니다.
  • 작은 단위의 모듈로 분리되어있기 때문에 서비스 규모가 커져도 필요부분만 배포할 수있기 때문에 독립적으로 빠르게 배포할 수 있습니다.
    • 특정 서비스 배포시, 전체 서비스 중단이 발생하지 않습니다.
  • 수평적 확장이 가능합니다.

단점

  • 각 서버간의 API통신으로 인해 Latency가 증가합니다.
  • 데이터가 분산되기 때문에 데이터 정합성 문제가 발생할 수 있습니다.
  • 서비스가 분산되어있기때문에 트랜잭션 복잡도가 증가합니다.

Reference

https://giljae.medium.com/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-microservices-architecture-%EC%9D%98-%EC%9E%A5%EC%A0%90%EA%B3%BC-%EB%8B%A8%EC%A0%90-7c45615cfe1a

https://jaimemin.tistory.com/1827

profile
내 꿈은 좋은 개발자

0개의 댓글