2012-08-20 3 views
4

Node.js와 socket.io를 잠시 사용하면 응용 프로그램에서 최대 100 만 명의 동시 사용자를 지원할 수 있도록 확장해야하므로 이해합니다. 내가 Redis를 사용하여 PUB/SUB 소켓 사이의 메시지와 동일한 컴퓨터 및 다른 컴퓨터에서 많은 socket.io 서버 인스턴스를 실행하기 시작했지만 모든 socket.io 서버는 동일한 Redis 서버와 작동합니다.Redis로 Socket.IO를 축소 한 다음 Redis 자체를 크기 조절

그래서 내 생각에 .. 요점은 뭐니? 그래서 몇 가지 더 redis 서버가 필요하고 그들 사이의 규모? 저의 요점은 그들의 서버가 항상 최상위 서버에서 병목 현상이 될 것이라는 것입니다.

제 질문은, Redis를 확장 할 수 있습니까? 그렇다면 다른 socket.io 서버에 연결된 모든 소켓이 Redis 서버간에 PUB/SUB이 될 수 있습니까?

많은 감사

+0

제발, 당신은 술집/하위에 대한 동일한 연결을 사용합니까? 덕분에 –

+0

아니요, 연결된 각 클라이언트에 대해 2 명의 클라이언트를 만드는 중입니다. – udidu

+0

몹시 죄송합니다. ** no ** the pub/sub. 그래서? 고마워요 –

답변

2

난 당신이 찾고있는 무슨 생각 Redis Cluster입니다. 이 페이지에는 "일하고있는 중"이고 "이번 여름을 위해서"라고 언급되어 있습니다.

프리젠 테이션 here이 있습니다. 기본적으로 해싱 + 중복 마스터를위한 단일 마스터 및 슬레이브입니다. 아직 준비가 안됐어. 더 자세한 정보를 얻으려면 포럼과 IRC를 방문하십시오.

누군가 비슷한 일을하는 경우 해당 채널에 있습니다.

+0

많은 감사합니다! 훌륭한 리소스 – udidu

+1

또는 Redis에서 요청하는 유일한 클라이언트가 앱인 경우 클라이언트 측 해시를 수행하여 자신의 역할을 수행하십시오. Node.js의 lib를 빠르게 검색하여 https://github.com/bnoguchi/node-hash-ring을 참조하십시오. ('일관된 해싱'이라는 용어에 익숙하지 않은 경우 참조 된 블로그 포스트에서 읽으십시오. 기본적으로 서버의 수를 미리 정의하지 않고 최소한의 오버 헤드로 서버를 탄력적으로 확장하고 다시 해쉬 할 수 있습니다). BTW : 이것은 샤딩 만 처리합니다. 복제/HA도 처리해야합니다. –

+2

네, Redis Cluster는 이와 함께 할 수있는 방법입니다. 나는 2012 년 4 월 이후 다른 것들과 펍/서브를 위해 그것을 사용 해왔다. 그리고 그것은 훌륭하게 작동한다. 나는 당신이 Redis Cluster를 다루는 데 도움이되는 nodejs 모듈을 작성했고, 당신을 위해서 클라이언트 측 해싱을한다. do는 노드 중 하나에 주소를 제공하고 클러스터를 올바르게 구성한 경우 다른 노드를 검색합니다. https://github.com/joaojeronimo/node_redis_cluster –