
203
12
장
실무 환경
예를 들어 필자는 데이터베이스 연결 실패에 대비해 폼 제출 데이터를 파일에 백업할 때가 많
습니다. 데이터베이스 장애가 발생할 경우 각 서버에 접속해서 파일을 수집하는 것이 번거롭긴
하지만, 최소한 데이터를 잃을 일은 없습니다.
12.4.1
앱 클러스터를 통한 스케일 아웃
노드는 자체적으로
앱 클러스터
app
cluster
라는 수평적 확장 방법을 지원합니다. 앱 클러스터를 사
용하면 시스템에 설치된 코어 (
CPU
) 하나마다 독립적인 서버를 운영할 수 있습니다 (이 경우
코어 숫자보다 서버 숫자가 많다면 성능이 향상되지는 않습니다). 앱 클러스터에는 두 가지 장
점이 있습니다. 첫 번째는 서버(하드웨어든, 가상 머신이든)의 성능을 최대한 끌어낼 수 있다
는 점입니다. 두 번째는 병렬 서버를 운영하는 상황을 최소한의 비용으로 테스트할 수 있다는
겁니다.
웹사이트에 클러스터 지원을 추가해봅시다. 메인 애플리케이션 파일에 이 작업을 하는 것이 일
반적이지만, 우리는 앱을 클러스터에서 실행하는 두 번째 애플리케이션 파일을 만들고 그동안
사용하던 애플리케이션 파일은 그대로 둘 겁니다. 이렇게 하려면 먼저
meadowlark
.
js
를 조금
수정해야 합니다 (
ch12
/
01
-
server
.
js
).
function startServer(port) {
app.listen(port, ...