[javascript] Express.js에서의 클러스터링 환경 구축 방법
클러스터링(Clustering)은 Express.js 애플리케이션을 여러 개의 작은 프로세스로 분할하여 동시에 처리할 수 있는 환경을 구축하는 방법입니다. 이를 통해 애플리케이션의 성능을 개선하고 처리 속도를 향상시킬 수 있습니다.
Express.js에서 클러스터링 구현하기
아래는 Express.js에서 클러스터링을 구현하는 간단한 예제 코드입니다.
const express = require('express');
const cluster = require('cluster');
const os = require('os');
const numCPUs = os.cpus().length;
const app = express();
if (cluster.isMaster) {
console.log(`마스터 프로세스 ${process.pid} 실행`);
// 워커 프로세스 생성
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`워커 프로세스 ${worker.process.pid} 종료`);
cluster.fork();
});
} else {
// 워커 프로세스가 서버 실행
app.get('/', (req, res) => {
res.send('Hello, World!');
});
const port = 3000;
app.listen(port, () => {
console.log(`워커 프로세스 ${process.pid}에서 서버 실행 중`);
});
}
설명
cluster
모듈을 사용하여 마스터 프로세스와 워커 프로세스를 생성합니다.os
모듈을 사용하여 시스템의 CPU 개수를 확인합니다.- 마스터 프로세스에서는 워커 프로세스를 CPU 개수만큼 생성합니다.
cluster.on('exit')
이벤트를 사용하여 워커 프로세스가 종료될 때마다 새로운 워커 프로세스를 생성합니다.- 워커 프로세스에서는 Express.js 애플리케이션을 실행합니다.
app.get()
메소드를 사용하여 루트 URL에 접속하면 ‘Hello, World!’를 반환하는 라우터를 정의합니다.- 워커 프로세스에서 서버를 실행합니다.
실행하기
위의 예제 코드를 app.js
파일에 저장한 후, 터미널에서 다음 명령어로 실행할 수 있습니다.
node app.js
웹 브라우저에서 http://localhost:3000에 접속하면 ‘Hello, World!’ 메시지가 표시됩니다.
결론
Express.js에서 클러스터링을 활용하면 애플리케이션의 성능을 개선할 수 있습니다. 클러스터링 환경을 구축하여 애플리케이션의 처리 속도를 향상시키고 사용자들에게 빠른 응답 속도를 제공할 수 있습니다.
참조 링크: