Node.js Cluster 모듈‘은 싱글스레드의 단점(CPU 처리량이 많을 때 속도가 느려지는)을 해결합니다. 모듈을 사용하려면 require(‘cluster’) 로 불러옵니다.

Node.js Cluster > 생성 예제

위 예제의 경우 PC의 코어 수대로 워커가 생성됩니다. 웹브라우저에서 ‘localhost:8000’으로 접속하면 생성된 워커 프로세스가 요청을 처리합니다.

cluster.fork()가 내부적으로는 child_process.fork()에 기반을 두고 구현되었는데, 두 개의 다른 점은 생성한 서버가 워커 프로세스 사이에 공유된다는 점입니다. 그 외에는 동일하므로 cluster.fork() 로 생성한 프로세스 간 메시지를 전달할 수 있습니다.

Node.js Cluster > 워커 프로세스에서 마스터 프로세스로 메시지를 전달해 전체 요청 수를 기록하는 예제:

웹브라우저를 이용해 요청을 보낸 후 서버 콘솔의 결과를 확인: