마이크로서비스
모놀리식 아키텍처를 단독으로 실행 가능한 다수의 모듈로 분해한 아키텍처
특징
- 개발과 배포에 상호 독립적이다.
- 독립적인 데이터 저장소를 가진다.
단점
- 공유 자원 접근이 어렵다.
- 배포와 실행이 복잡해진다.
- 분산 시스템 구현이 어렵다.
마이크로서비스가 유기적으로 동작해야 하므로 작고 가벼워야 한다.
I/O가 동기 방식이라면 응답이 올 때까지 다음 요청을 처리하지 못하기 때문에 성능이 좋지 않다. --> 메시지-큐를 이용해 해결한다.
I/O를 실제로 처리하는 서버를 별도로 두고, 요청받은 서버는 큐로 데이터를 전송한 후 이 요청을 처리한다. 처리가 되면 클라이언트에 보낸다.
하지만 위의 서버들을 구현하기에는 쉽지 않다.
Node.js 내부적으로 이러한 메커니즘을 처리해주기 때문에 고민하지 않아도 된다.
- 메시지-큐 기능이 자체적으로 들어 있다.
- 경량화된 고성능 서버 개발에 최적화된 프레임워크다.
싱글 스레드를 기반으로 코딩하기 떄문에 스레드 동기화, 교착 상태 등을 고려할 필요가 없다.
이벤트 루프는 기본적으로 이벤트 목록과 완료된 작업의 콜백인 이벤트 큐를 반복한다.
참고
책 Node.js 마이크로서비스 코딩공작소 - 정대천
728x90
반응형
'개발공부 > NodeJS' 카테고리의 다른 글
[공유] 이벤트 루프를 차단하지 않기 위한 실용적인 가이드 (0) | 2023.06.24 |
---|---|
Nodejs 싱글스레드 (0) | 2023.06.07 |
Nodejs 환경에서 Artillery로 부하테스트 하기 (0) | 2023.05.29 |
Express 웹서버 구축 - route, body-parser, compression, cookie-session, express-session, session-file-store, cors, morgan, multer, response-time, connect-timeout (0) | 2023.05.28 |
[NodeJS] json-server 이용하기 (0) | 2023.05.27 |
댓글