본문 바로가기
개발공부/NodeJS

마이크로서비스와 Nodejs

by bzerome240 2023. 6. 6.

마이크로서비스

모놀리식 아키텍처를 단독으로 실행 가능한 다수의 모듈로 분해한 아키텍처

 

특징

  • 개발과 배포에 상호 독립적이다.
  • 독립적인 데이터 저장소를 가진다.

 

단점

  • 공유 자원 접근이 어렵다.
  • 배포와 실행이 복잡해진다.
  • 분산 시스템 구현이 어렵다.

 

마이크로서비스가 유기적으로 동작해야 하므로 작고 가벼워야 한다.

I/O가 동기 방식이라면 응답이 올 때까지 다음 요청을 처리하지 못하기 때문에 성능이 좋지 않다. --> 메시지-큐를 이용해 해결한다.

I/O를 실제로 처리하는 서버를 별도로 두고, 요청받은 서버는 큐로 데이터를 전송한 후 이 요청을 처리한다. 처리가 되면 클라이언트에 보낸다.

 

하지만 위의 서버들을 구현하기에는 쉽지 않다.

Node.js 내부적으로 이러한 메커니즘을 처리해주기 때문에 고민하지 않아도 된다.

  • 메시지-큐 기능이 자체적으로 들어 있다.
  • 경량화된 고성능 서버 개발에 최적화된 프레임워크다.

싱글 스레드를 기반으로 코딩하기 떄문에 스레드 동기화, 교착 상태 등을 고려할 필요가 없다.

 

https://www.pabbly.com/tutorials/node-js-event-loops/

 

이벤트 루프는 기본적으로 이벤트 목록과 완료된 작업의 콜백인 이벤트 큐를 반복한다.

 

 


 

참고

 

책 Node.js 마이크로서비스 코딩공작소 - 정대천

 

728x90
반응형

댓글