무중단 실행 및 멀티 쓰레드 대응 PM2 > JS프레임워크

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

JS프레임워크

무중단 실행 및 멀티 쓰레드 대응 PM2 정보

SVELTE 무중단 실행 및 멀티 쓰레드 대응 PM2

본문

SVELTEKIT 를 이용하여 node.js 환경에서 배포를 하려면 몇가지 문제가 있습니다.

 

php와 비교하면, 

php는 ftp 파일  올리면 끝납니다. 세상 편하죠. 그래서 문제인 것도 있지만,

개발자 입장에서 이리 편한 언어도 없을 것입니다.

 

우리는 php를 기준으로 생각을하니,

node.js 환경의 배포는 뭐이리 할일이 많은지...

 

php는 APACHE 나 NGINX 에 딱 붙어 있습니다.

그래서 APACHE나 NGINX의 웹서버를 그대로 이용합니다.

PHP로 웹서버를 돌릴수도 있지만 개발환경용으로 만 사용할 뿐 본 서비스에서는 사용하지 않습니다.

 

NODE.JS 는 NODE.JS 를 서버에서 사용하려면, APACHE와 NGINX와 분리해서 실행해야합니다.

그러니까 웹서버를 하나 더 뛰워야합니다.(대게 그렇게 한다정도로 생각해주세요)

 

 APACHE와 NGINX는 프록시 패스로 NODE.JS 웹서버에 연결해줍니다.

 

PM2 설명할려고했는데 서론이 좀 기네요.

그만큼 PHP와 비교해서 귀찾은 점이 있습니다.

 

아무튼, SVELTEKIT 을 빌드해서 빌드 내용이 들어있는 폴더에 보면,

index.js 파일이 생성됩니다.

 

이파일을 node 로 실행하면 노드 서버가 실행됩니다.

node ./index.js

 

그런데, 이놈이 약간 약합니다. 소프트하다고해야할까요?

 

javascript 로 실행해서 그런지, 중간에 에러나면 다음 동작이 안되고 멈추는 경우가 있습니다.

그래서 

무중단 실행 프로그램들이 몇게 나와있습니다.

 작년까지 제가 사용한 forever 가 있고

 

최근에 사용하게된 pm2 가 있습니다.

저 개인적인 생각으론 pm2가 더 편한것 같습니다.

 

sudo npm install pm2 -g

이렇게 관리자 권한으로 설치해주시고

 

 

pm2 start ./index.js

 

이렇게 해주면 실행됩니다.

그리고 

pm2 list 또는 pm2 status

이렇게 해주면 실행되고 있는 목록을 보여줍니다.

 

중단하려면

pm2 stop {프로세스id}

 

실행되는 모든 프로세스 중단

pm2 kill

 

 

그리고  멀티쓰레드 기능으로 cpu 별로 실행도 해줍니다.

pm2 start ./index.js -i 4

 

-i 를 붙이고 뒤에 숫자를 붙이면 숫자만큼 CPU 분리해서 쓰레드 생성해줍니다.

이렇게 생성된 쓰레드는 완전 독립이라서, 쿠키 같은것 공유가 안됩니다.

그래서 로그인 같은거  JWT로 만들어 쓰면 이런환경에서도 문제없이 돌아갑니다.

 

 

그리고 설정으로 파일로 저장해서 실행할수도 있습니다.

pm2 ecosystem

이렇게 명령어를 치면

ecosystem.config.js 파일이 생성됩니다.

 

어머나, ecosystem 은 사용해본적이 없는데, 이글 쓰느라 검색해보니

deploy 옵션에서  git 연결 배포 설정이 있네요. 

이것 좀더 알아보고 공유해야겠네요.

젠킨스 이용해서 배포 자동화하려면 좀 힘든데,

pm2 로 한번에 다 될것 같네요.

 

추천
1

댓글 0개

전체 39 |RSS
JS프레임워크 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT