복붙노트

[REDIS] 다중 서버 클러스터를 Node.js를 어떻게 공유 객체에 여러 개의 노드 클러스터에

REDIS

다중 서버 클러스터를 Node.js를 어떻게 공유 객체에 여러 개의 노드 클러스터에

나는 대화방 응용 프로그램에 대한 높은 동시성을 지원하기 위해 Node.js를 서버의 클러스터를 만들려고합니다. 나는 모든 노드 간 정보를 공유 할 수 있어야합니다. 나는에 동기화 모든 서버를 유지하는 최선의 방법이 될 것입니다 무엇을 찾기 위해 노력하고있다. 나는 미래에 더 많은 기능을 추가 할 계획으로 나는, 공유 객체에서 가능한 한 많은 유연성으로합니다.

지금까지, 나는 마음에이 개 솔루션을 가지고 :

어떤게 더 좋아? 어떤 다른 아이디어?

해결법

  1. ==============================

    1.이 규모에 상당히 쉽게 노드 응용 프로그램의 독립적이고 있기 때문에 레디 스 좋은 것입니다. 당신은 또한 기본 데이터 구조를 공유하는 등,뿐만 아니라 술집 / 하위의 물건 외부의 많은 위해 그것을 사용할 수있는 도움말을 노드 서버 사이에 (해시, 세트, ​​목록, 문자열 정렬)이 방법으로 동기화뿐만 아니라 보관하십시오. 이론적으로, 당신은 당신의 키가 일부 채팅 개체 ({: 'some_user', 'MSG': '사용자'some_msg '} 같은의 JSON 표현입니다 소트 세트로 지정된 방에있는 모든 채팅 내용을 저장할 수 있고 당신의 점수는 타임 스탬프는, 그래서 아주 쉽게 시간 대화를 당길)입니다. 레디 스 매우 빠르고, 단일 서버가 많은, 많은 사용자를 처리 할 수 ​​있도록 데이터 구조는 고도로 최적화되어 있습니다.

    이 규모에 상당히 쉽게 노드 응용 프로그램의 독립적이고 있기 때문에 레디 스 좋은 것입니다. 당신은 또한 기본 데이터 구조를 공유하는 등,뿐만 아니라 술집 / 하위의 물건 외부의 많은 위해 그것을 사용할 수있는 도움말을 노드 서버 사이에 (해시, 세트, ​​목록, 문자열 정렬)이 방법으로 동기화뿐만 아니라 보관하십시오. 이론적으로, 당신은 당신의 키가 일부 채팅 개체 ({: 'some_user', 'MSG': '사용자'some_msg '} 같은의 JSON 표현입니다 소트 세트로 지정된 방에있는 모든 채팅 내용을 저장할 수 있고 당신의 점수는 타임 스탬프는, 그래서 아주 쉽게 시간 대화를 당길)입니다. 레디 스 매우 빠르고, 단일 서버가 많은, 많은 사용자를 처리 할 수 ​​있도록 데이터 구조는 고도로 최적화되어 있습니다.

    우리는 1 백만 사용자 (10,000 약 안타 삽입 및 20K 분당 정렬 된 세트에서 읽고)를 처리 한 레디 스 서버와 생산에 비슷한 설정을 가지고 있고, CPU 사용량이 거의 비 CPU 무거운 상자에 5 % 이상 얻을 수 없습니다.

  2. from https://stackoverflow.com/questions/16956913/node-js-multi-server-cluster-how-to-share-object-in-several-nodes-cluster by cc-by-sa and MIT license