2016-09-12 2 views
0

나는 express와 socket.io로 애플 리케이션에서 일하고있다.클러스터를 사용할 때 전역 개체를 설정하는 방법은 무엇입니까?

이 앱에서 개발하기 시작했을 때 클러스터에 대한 정보는 많지 않습니다. 클러스터 구현을 시도하고 있지만이 문제가 있습니다.

나는 모든 클러스터에서 액세스 할 수있는 전역 개체로 해결할 수있는 가장 큰 문제라고 생각합니다.

그래서, 질문은 두 가지가 있습니다 :

  1. 방법 내가 어떤 클러스터에서 값에 액세스 할 수있는 전역 개체를 만들 수있는이있다?
  2. 전역 개체의 값을 수정하고 다른 클러스터에서이 값을 얻을 수있는 방법이 있습니까?

고맙습니다!

답변

1

그래서 두 가지 방법

이있을 수
  1. 외부 저장 : 클러스터 모드에서 여러 프로세스는 클러스터처럼 행동하고 나는 전역 개체를 공유하고 프로세스 사이의 동기화 이러한 개체를 유지하기 위해 세션을 관리 권하고 싶지 않다 . REDIS 또는 유사한 데이터베이스를 사용하는 것이 좋습니다 (REDIS를 사용하는 것이 좋습니다).
  2. 전역 개체 : 예, 개체를 만들거나 수정할 수 있으며 각 프로세스에서 개체의 복사본이 될 수 있습니다. 개체를 동기화 상태로 유지해야합니다. process에는 process.send()를 사용하고 master 프로세스의 작업자에는 worker.send()를 사용할 수 있습니다. memored npm module 또는 StrongLoops strong store cluster

내가 독립 모든 과정을 유지하는 것을 선호하고 공통의 외부 저장 장치를 사용하는 것이지만, 다시는 사용 사례에 따라 결정을해야한다 : 내가 보는 또 다른 방법은 같은에 대한 라이브러리를 사용하고 있습니다.

+0

감사합니다. 나는 그것이 더 좋은 첫 번째 방법이라고 생각한다. 어떤 저장소를 제공해 주시겠습니까? 내 프로젝트에서 구현할 수있는 방법에 대한 예제 코드를 볼 필요가있다. – slorenzo

+0

이것은 npm redis 문서 : [link] (https://github.com/NodeRedis/node_redis)입니다. 이 블로그가 유용하다는 사실을 알게되었습니다. [link] (https://codeforgeek.com/2015/07/using-redis-to-handle-session-in-node-js). REDIS에도 내장 된 npm 모듈이 여러 개 있습니다. – Mattony

관련 문제