• Q&A
  • 회원가입
  • 로그인

[module] Node.js - cluster 모듈 - 단일 노드 프로세스를 여러 프로세스로 분할.

2  

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를 반환.

 

 

 


방문자 수

오늘 239
어제 2,259
최대 2,397
이달 42,809
전체 990,555
Since 2012