inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

pm2 사용 관련 질문이 있습니다.

해결된 질문

649

작성자 없음

작성한 질문수 0

0

nodejs  활용 외부 API 호출 후 응답받은 데이터로 2차 서비스를 만들고 있는중에

선임(자바 개발자) 으로부터 API 호출 시 안전 장치를 위해 Circuit Breaker 를 구현하는게 좋을 것 같다는

의견을 청취해 해당 로직 구현 후 로컬 테스트 후 개발 서버에서 테스트 중 버그를 발견했습니다.ㅜㅜ

 

pm2 로 멀티프로세싱 시 메모리 공유가 되지않아 각 프로세스 별 API 요청 실패 횟수 및 서킷의 현재 상태가 공유되지않아

제가 생각한 방향과 다르게 동작했습니다.

(pm2를 책에서 보고 따라했어서 다시 찾아보니 제로초님이 로그인 세션에 빗대어 설명해주신걸 이제야 이해했네요ㅜㅜ)

 

핵심 질문은 요런 내용으로 pm2 가 관리하는 마스터 노드에서 각 워커 노드에게

브로드캐스팅으로 현 상태를 전달하는 예제들을 많이 봤는데

 

각 프로세스들의 서킷 상태 뿐 아니라 실시간으로 API 실패 횟수를 체크(서킷의 상태를 관리하기 위한 임계치) 를 해야해서

여러 프로세스에서 동시에 처리하다보면 해당 데이터가 꼬일 것 같습니다.ㅜㅜ

 

1. Redis 등 외부 인프라를 사용하지 않고 처리 할 수 있는 괜찮은 방안이 있을까요?

2. 해당 어플리케이션이 k8s 클러스터에 배포가 되는데, 서버 상태를 k8s가 체킹해주고 있다면

      pm2를 걷어내도 될까요?(각 k8s 의 워커 노드들의 CPU가 4코어로 pm2를 사용 시 좀 더 효율적으로 메모리 관리가 된다고        생각하고 있습니다..)

사내에 node.js 개발자가 없어서 강사님께 질문을 드리게되네요.

 

무더위 건강 유의하시고, 좋은 강의 감사합니다.

mongodb nodejs mysql Sequelize

답변 1

1

제로초(조현영)

1. 현재 서버 안에서 하나의 서버를 더 띄워서 공유하면 됩니다. 그 서버가 레디스면 되고요. 아니면 서킷브레이킹을 할 수 있는 노드여도 됩니다.

2. 저희도 코어를 활용하기 위해 k8s에서 pm2로 클러스터링 또 하고 있습니다.

0

elseelse

쉬는 날에도 빠른 답변을 주셔서 너무 감사합니다.

제가 처음하다보니 조금 무지해서 추가 질문을 드려요 (__) 

 

현재 서버 안에서 하나의 서버를 더 띄운다는 것은

책에서도 나와있는 동일 프로젝트에 mono-repo 형식으로 서버를 2개 띄우는 것을 말씀하시는걸까요? 그 서킷 브레이킹을 할 수 있는 노드라는 말씀도 조금만 더 설명을 들을 수 있을까요?ㅜㅜ

정말 죄송하고 감사합니디.

0

제로초(조현영)

쉽게 말해서 컴퓨터 안에 서버 두 대를 띄우시면 됩니다. localhost:8001 localhost:8002 띄우듯요. 서킷브레이킹을 할 수 있는 노드라는 건 서킷 브레이킹 기능을 노드로 구현하실 수 있다면 그 서버도 쓸 수 있다는 겁니다.

0

elseelse

감사합니다. 바쁜 시간 내주셔서 감사합니다!

이해가 어느정도 돼서 공부를 더 해보겠습니다. !!!

리눅스 노드 설치시 패키지

0

172

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

931

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2297

2

a[title] 질문드립니다

0

387

1

리뉴얼 강의 및 공부 방법

0

590

1

jwt decode

0

1138

1

node.js 교과서 3판 질문드립니다

0

398

1

passport와 jwt

0

439

1

리뉴얼 강의

0

428

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

359

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

490

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

511

2

nunjucks res.render('error'); 작동을 안합니다.

0

520

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3545

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

245

1

multer 사용시 file 외 name값은 못받나용?

0

430

1

코드 중복 부분 질문드립니다.

0

303

1

api 만드는 이유 질문드립니다.

0

293

1

Strategy의 done에 대해 질문드립니다.

0

374

1

안녕하세요 fs 권한 관련 질문드립니다

0

456

1

시퀄라이즈 연결질문...

0

511

2

res.setHeader vs res.cookie

0

1799

3