Ich bin seit einiger Zeit ein Ruby/PHP-Entwickler von Webanwendungen und ich bin es gewohnt, horizontale Skalierung von Serverinstanzen zu verwenden, um mehr Anfragen zu bearbeiten. Horizontale Skalierung - bedeutet separate Instanzen einer Anwendung, die hinter einem Load-Balancer sitzt, die nichts teilen und sich nicht kennen.NodeJS horizontale Skalierung
Die Hauptfrage, die ich habe, ist, da Node.js und seine Betonung auf evented-io ermöglicht eine einzige Box, die einen node.js-Server zu handhaben, Tausende von gleichzeitigen Anfragen - ist Load-Balancing/horizontale Skalierung verwendet Nodejs Anwendungen skalieren? Ist die Skalierung einer Knoten-App auf vertikale Skalierung beschränkt (mehr RAM/Prozessorleistung beim Problem)?
Meine zweite Frage hat mit horizontaler Skalierung und Websockets von node.js zu tun. Ich habe schon einige Node.js 'Chat' Tutorials gesehen, die von WebSockets Gebrauch machen. (Favorit: http://martinsikora.com/nodejs-and-websocket-simple-chat-tutorial)
Da WebSockets effektiv eine offene Linie der Kommunikation offen zwischen einem Browser und einem Server halten, würde in der Verbindung eine horizontal skalierte Architektur typisch für die PHP/Ruby-Welt einer Chat-Anwendung wie die verursacht erklärt zu brechen - da neue Websocket-Verbindungsanfragen verschiedenen Prozessen/Servern zugewiesen würden und es keine zentrale Ressource geben würde, die alle verbundenen Clients überwacht?
Dies ist eine alte Frage, aber ich benutze mongodb zum Speichern und Abrufen aller meine Chat-Anwendung Daten. Da ich meine Anwendung horizontal skalieren möchte, funktioniert meine Chat-Anwendung nicht, wenn ich mehr als einen Server habe. Was soll ich tun, sollte ich mongodb komplett entfernen und redis verwenden? Oder gibt es eine bessere Lösung? – DragonBorn