Wie skaliere ich Node.js WebSocket Redis Server?
Ich schreibe einen Chat-Server fürAcaniund ich habe einige Fragen zuSkalieren von node.js undWebsockets mit Load-Balancer-Skalierbarkeit.
Was genau bedeutet es, Node.js zu laden? Bedeutet das, dass es welche geben wird?n unabhängige Versionen meiner Serveranwendung, die jeweils auf einem separaten Server ausgeführt werden?
Damit ein Client eine Nachricht an alle anderen senden kann, speichere ich einen Satz aller NachrichtenwebSocketConnections
auf dem Server geöffnet. Aber wenn jan unabhängige Versionen meiner Serveranwendung laufen, jede auf einem eigenen Server, dann werde ich habenn verschiedene Sätze vonwebSocketConnections
?
Wenn die Antworten zu 1 & 2 positiv sind, wie speichere ich dann einen universellen Satz vonwebSocketConnections
(über alle Server hinweg)? Ich denke, ich könnte dies tun, indem ich Redis Pub / Sub benutze und einfach jeden habewebSocketConnection
Abonnieren Sie einen Kanal bei Redis.
Aber wird der einzelne Redis-Server dann nicht zum Engpass? Wie würde ich dann Redis skalieren? Was bedeutet es überhaupt, Redis zu skalieren? Heißt das, ich habem unabhängige Versionen von Redis laufen auf verschiedenen Servern? Ist das überhaupt möglich?
Ich habe gehört, dass Redis nicht skaliert. Warum sollte das jemand sagen? Was bedeutet das? Wenn dies zutrifft, gibt es eine bessere Lösung für das Pub / Sub und / oder das Speichern einer Liste aller gesendeten Nachrichten?
Hinweis: Wenn Ihre Antwort lautet, dass Acani niemals skalieren müsste, selbst wenn jeder von sieben Milliarden Menschen (und die wachsen) auf der Erde jede Sekunde eine Nachricht an alle anderen auf der Erde senden würde, dann geben Sie bitte eine gültige Erklärung.