Jak skalować serwer Node.js WebSocket Redis?

Piszę serwer czatu dlaAcanii mam kilka pytańSkalowanie node.js iwebsockets ze skalowalnością równoważenia obciążenia.

Co dokładnie oznacza równoważenie Node.js? Czy to znaczy, że tak będzien niezależne wersje mojej aplikacji serwerowej, każda na osobnym serwerze?

Aby umożliwić jednemu klientowi rozgłaszanie wiadomości do wszystkich innych, przechowuję zestaw wszystkichwebSocketConnections otwarty na serwerze. Ale jeśli mamn niezależne wersje mojej aplikacji serwerowej, każda na osobnym serwerze, wtedy będę miałan różne zestawywebSocketConnections?

Jeśli odpowiedzi na 1 i 2 są twierdzące, to jak mam przechowywać uniwersalny zestawwebSocketConnections (na wszystkich serwerach)? Moim zdaniem mogę to zrobić za pomocą Redis Pub / Sub i po prostu mieć wszystkowebSocketConnection zapisz się na kanał w Redis.

Ale czy pojedynczy serwer Redis nie stanie się wąskim gardłem? Jak mógłbym następnie skalować Redis? Co to nawet oznacza skalowanie Redis? Czy to znaczy, że mamm niezależne wersje Redis działające na różnych serwerach? Czy to w ogóle możliwe?

Słyszałem, że Redis nie skaluje się. Dlaczego ktoś tak powiedział? Co to znaczy? Jeśli to prawda, czy jest lepsze rozwiązanie dla pubu / sub i / lub przechowywania listy wszystkich transmitowanych wiadomości?

Uwaga: Jeśli twoja odpowiedź jest taka, że ​​Acani nigdy nie musiałby się skalować, nawet jeśli każdy z siedmiu miliardów ludzi (i rośnie) na Ziemi miałby nadawać wiadomość co sekundę wszystkim innym na Ziemi, to proszę podać prawidłowe wyjaśnienie.

questionAnswers(2)

yourAnswerToTheQuestion