더북(TheBook)

2.3 마이크로서비스와 Node.js

마이크로서비스 아키텍처에서는 여러 마이크로서비스가 유기적으로 동작해야 하므로 마이크로서비스 하나는 구조가 작고 가벼워야 합니다. 유지 보수와 배포가 어렵고 장애 포인트가 많다면, 마이크로서비스 아키텍처는 아무런 장점이 없는 아키텍처입니다.

코드 구조를 작고 가볍게 하는 데 어떤 요소가 가장 중요할까요? 대부분의 서비스는 정보를 저장하고 조회하는 데 데이터베이스, 파일 등과의 I/O가 필수적입니다. 그런데 이때 I/O가 동기 방식이라면 응답이 올 때까지 다음 요청을 처리하지 못하기 때문에 성능이 좋지 않습니다. 보통 이러한 문제는 메시지- 큐를 이용해 해결합니다. I/O를 실제로 처리하는 서버를 별도로 두고, 요청을 받은 서버는 큐로 데이터를 전송한 후 이 요청을 처리하고, I/O가 처리되면 클라이언트에 보내는 방식을 사용합니다.

▲ 그림 2-2 메시지- 큐

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.