1. 비정상 종료되었을 때 자동으로 서버를 재시작하게 해주는 모듈 - forever
- npm install forever -g 로 전역설치 해준다음
- forever start app.js로 노드 프로그램을 실행하기
- forever list 를 통해 forever로 돌아가는 프로그램들을 확인할 수 있다.
- 소스 코드 수정으로 인해 forever를 재시작해야 하는 경우에는 forever restart app.js 를 입력하여 재시작하면 된다.
- forever를 종료하고 싶다면 forever stop app.js 를 하면 된다.
2. 클러스터링?
- 하나의 프로그램을 여러 개의 프로세스로 실행하는 방법.
- pm2 모듈을 활용할 수 있다.
- npm install pm2 -g 로 전역설치한다.
- 주요 명령어
- pm2 start app.js --name web1 : 노드 프로그램 시작. name을 부여하지 않으면 프로그램 이름이 됨.
- pm2 list: 실행중인 프로그램 리스트 보기
- pm2 show: 실행 중인 프로그램의 id나 name을 지정하여 해당 정보를 보여줌.
- pm2 restart: 실행 중인 노드 프로그램을 다시 시작함. 변경된 소스를 반영하고 싶을 때 사용.
- pm2 stop: 실행 중인 노드 프로그램을 중지함.
- pm2 delete: 노드 프로그램을 목록에서 삭제함. 프로그램이 실행중일 경우 중지하고 나서 삭제함.
- pm2 monit: 실행중인 프로그램의 cpu/메모리 사용량을 확인할 수 있다.
- 클러스터링을 하고 싶을 땐 pm2 start app.js -i 2 --name web1 이런식으로 -i 숫자 를 이용하여 인스턴스를 생성한다.
- 클러스터링을 사용중에는 restart 명령어 대신 reload 명령어를 사용하면 서버가 종료되고 새로 시작될 때까지의 시간 차가 없이 재시작 할 수 있다.
3. 레디스(Redis)?
- 하나의 프로그램을 여러개의 프로세스로 동시에 실행하면 프로세스들끼리 클라이언트의 상태를 공유하지 못한다.
- 예를 들어 채팅 서버 프로세스를 동시에 여러개 생성하면 같은 프로세스에 접속하지 못한 클라이언트끼리는 채팅을 할수가 없다.
- 이럴 때 레디스를 사용한다.
- 레디스는 통신이 가능한 메모리 데이터베이스이다.
- 어떤 프로그램이 레디스 서버에 연결하여 데이터를 넣어두면 다른 프로그램이 레디스 서버에서 그 데이터를 가져올 수 있다.
'Backend > node.js' 카테고리의 다른 글
8. passport로 사용자인증 (0) | 2022.04.20 |
---|---|
7. express 프로젝트를 모듈화 하기 (0) | 2022.04.19 |
6. Postgresql을 node.js에 연결하기 (0) | 2022.04.19 |
5. 노드로 웹 서버 만들기 (0) | 2022.04.19 |
4. 노드의 기본 기능 (1) | 2022.04.19 |