-
Notifications
You must be signed in to change notification settings - Fork 267
클러스터링
JJoriping edited this page Feb 21, 2017
·
6 revisions
node.js는 기본적으로 싱글 스레드로 작동하기 때문에 조금만 부하가 생겨도 CPU 하나만 죽어나갑니다. 이를 해결하기 위해 node.js에는 cluster
모듈이 내장되어 있습니다. 끄투는 현재 이 모듈을 이용하여 클러스터링 기능을 구현하고 있으며 그 활용 방법을 여기에 정리했습니다.
서버 관리자 용
-
./settings.json
의web-num-cpu
값으로 웹 서버를 클러스터링합니다. -
./settings.json
의game-num-cpu
값으로 게임 서버를 클러스터링합니다. -
./settings.json
의game-num-inst
값으로 게임 서버의 인스턴스 수를 정합니다.
- 경로
./Server
에서node lib/Web/cluster.js {프로세스 수}
를 입력하여 웹 서버를 클러스터링합니다. - 경로
./Server
에서node lib/Game/cluster.js {서버 번호} {프로세스 수}
를 입력하여 게임 서버를 클러스터링합니다.
- 웹 서버를 클러스터링하는 경우 세션이 각 프로세스마다 별도로 처리되므로 반드시 Redis를 설치한 뒤
./Server/lib/Web/main.js
의new Redission(...),
부분을 주석 해제해야 합니다. - 게임 서버의 인스턴스를 늘리는 경우 각 서버의 포트 번호를
./Server/lib/sub/global.json
의MAIN_PORTS
배열에 기입해야 합니다. 포트 번호 간격은 게임 서버의 프로세스 수보다 커야 하며 권장 간격은 10입니다.
- 웹 서버는 80번 포트를 사용합니다. HTTPS 통신을 하는 경우
./Server/lib/Web/main.js
파일의Server.listen(80);
부분을 80 대신 443으로 수정해 주세요. - 게임 서버는 마스터 게임 서버와 슬레이브 게임 서버로 나뉘어져 있고 한 마스터 게임 서버는 앞서 입력한
{프로세스 수}
만큼의 슬레이브 게임 서버를 가지고 있습니다. 마스터 게임 서버의 포트는./Server/lib/sub/global.json
의MAIN_PORTS
배열에 있는 대로 설정되며, 슬레이브 게임 서버는 마스터 게임 서버의 포트 번호에416 + {슬레이브 번호}
를 더한 값입니다.{슬레이브 번호}
는 0부터 시작하여 1씩 증가합니다.
위에서 소개한 서버 번호는 0부터 시작하며, 사용자에게 다음과 같이 표시됩니다.
# | 별명 |
---|---|
0 | 감자 |
1 | 냉이 |
2 | 다래 |
3 | 레몬 |
4 | 망고 |
5 | 보리 |
6 | 상추 |
7 | 아욱 |
8 | 자두 |
9 | 참외 |
10 | 커피 |
11 | 토란 |
12 | 포도 |
13 | 호박 |
14 | 꽈리 |
15 | 딸기 |
16 | 뽕잎 |
17 | 쑥갓 |
18 | 찔레 |
19 | 고구마 |