2장 마이크로서비스 아키텍쳐
Book/Node.js 마이크로 서비스 코딩공작소 2018. 12. 24. 09:52Node.js 마이크로 서비스 코딩공작소
스터디
저작권 문제시 비공개
마이크로서비스란
마이크로서비스 아키텍쳐의 단점
마이크로서비스와 Node.js
정리
마이크로서비스 아키텍쳐란 :
커다란 모놀리식 아키텍쳐를 단독으로 실행 가능한 다수의 모듈로 분해한 아키텍쳐
독립적 프로세스 형태로 배포 가능 해야 함
개별적으로 개발 할 수 있어야 함
서로 독립적인 데이터 저장소와 네트워크 통신 기능을 가질수 있어야 함
특징 정리
마이크로서비스 하나는 독립적인 프로세스 하나를 의미
개발과 배포에 상호 독립적
기술 독립성
독립적인 데이터 저장소를 가질수 있음
각 마이크로 서비스는 각자 가진 네트워크 기능으로 통신 할수 있음
모놀로식 아키텍쳐의 대부분 문제점은 하나의 프로세스로 개발 하기 때문이니 관리가 적당한 작은 단위로 기능을 분리 하자!
마이크로서비스 아키텍쳐 단점
공유자원 접근이 어렵다
모놀로식 아키텍쳐는 프로세스가 같기 때문에 어렵지 않게 접근 가능
마이크로서비스에서는 서로 다른 프로세스로 실행 하기 때문에 추가 고민이 필요함
배포와 실행이 복잡하다
모놀로식 아키텍쳐는 프로세스하나만 실행해도 서비스가 가능하지만
마이크로 서비스는 복잡한 실행 과정을 거쳐야만 서비스가 가능 (프로세스가 많기 때문)
분산 시스템을 구현하기가 어렵다
마이크로서비스에는 독립적인 프로세스들을 유기적으로 동작 할 수 있게 하는 분산 네트워크 시스템이 필요하다
중요한 시스템이지만 상황별로 처리해야 하므로 구현하기 어려울수 있다.
마이크로서비스 아키텍쳐에서는 여러 마이크로서비스가 유기적으로 동작 해야 하므로 마이크로서비스 하나의 구조는 작고 가벼워야 한다.
I/O가 필수적 (데이터베이스, 파일) : 메시지-큐 를 이용하여 해결
I/O를 실제로 처리하는 서버를 별도로 두고 요청을 받는 서버는 큐로 데이터를 전송한후 요청을 처리 하고 I/O가 처리되면 클라이언트에 보내는 방식을 사용한다.
Node.js는 내부적으로 이러한 매커니즘을 모두 처리해주기 때문에 개발자가 별도로 고민하지 않아도 됨.