목차
- cluster 모듈 예제 - 단일 노드 프로세스를 다수로 분할
- cluster 모듈 정의
- cluster 모듈 구문
- cluster 모듈 속성/메서드
cluster 모듈 예제 - 단일 노드 프로세스를 다수로 분할
var cluster = require('cluster');
if (cluster.isWorker) {
console.log('나는 worker');
} else {
console.log('나는 master');
cluster.fork();
cluster.fork();
}
cluster 모듈 정의
동시에 실행되고 동일한 서버 포트를 공유하는 자식 프로세스를 생성.
Node.js는 매우 메모리 효율적인 단일 스레드 프로그래밍을 실행하지만 컴퓨터 멀티 코어 시스템을 활용하기 위해 클러스터 모듈을 사용하면 각각 자체 단일 스레드에서 실행되는 자식 프로세스를 쉽게 만들어 부하를 처리 가능.
cluster 모듈 구문
var cluster = require('cluster');
cluster 모듈 속성/메서드
disconnect()
모든 작업자의 연결을 끊기.
exitedAfterDisconnect
연결 해제 후 worker가 종료된 경우 true 반환. 또는, kill 메서드 반환.
fork()
master에서 새 worker를 생성.
id
worker의 고유 ID
isConnected
worker가 master에 연결되어 있으면 true 반환, 그렇지 않으면 false 반환.
isDead
worker의 프로세스가 죽었으면 true 반환. 그렇지 않으면 false 반환.
isMaster
현재 프로세스가 master이면 true 반환. 그렇지 않으면 false 반환.
isWorker
현재 프로세스가 worker이면 true를 반환. 그렇지 않으면 false 반환.
kill()
현재 worker 죽이기.
process
전역 자식 프로세스를 반환.
SchedulingPolicy
스케줄링 정책을 설정/얻기.
send()
master 또는 worker에게 메시지를 보냄.
settings
클러스터의 설정을 포함하는 객체를 반환.
setupMaster()
클러스터의 설정을 변경.
worker
현재 worker 객체를 반환.
workers
master의 모든 worker를 반환.