Ich bin ziemlich neu in der umfangreichen serverseitigen Entwicklung. Ich möchte einen Server mit Node.js schreiben, aber bevor ich weitermache, möchte ich wissen, wie die allgemeinen Prinzipien für die Skalierung von Knoten auf beispielsweise 20 Abfragen pro Sekunde aussehen.
Der Dienst, den ich schreibe, wird größtenteils eine Schnittstelle zu einer Datenbank sowie die Authentifizierung und Validierung von Eingabedaten sein.
node.js
scalability
Nornagon
quelle
quelle
Antworten:
Lastverteilung
Höchstwahrscheinlich benötigen Sie für die einfachsten Websites überhaupt keine Skalierung. Mit nur einer einzigen Box sind Sie abgesichert. Danach sollten Sie einen Lastenausgleich durchführen, wie Sie bereits erwähnt haben, der für jede Architektur fast gleich ist (wie Sie sagen, Sie könnten zuerst mehrere Knotenprozesse starten. Wenn Sie jedoch sehr groß werden, benötigen Sie mehr Boxen).
Beispiel für einen Nginx-Lastausgleich :
Redis
Kein Schweiß für node.js. Sie sollten redis als Datenspeicher verwenden, da es schnell verrückt ist :). Es gibt sogar eine Wechselstrombibliothek für Knoten, wenn Sie node_redis verwenden .
Hiredis bietet Ihnen eine hervorragende Leistung, da es innerhalb des Knotens zu C-Code kompiliert wird. Hier sind einige Benchmarks von Redis bei Verwendung mit Hiredis.
Wenn Sie sich diese Zahlen ansehen, dann sind 20 / s NICHTS :).
Authentifizierung
Aktualisieren:
jeden Tag
openid
Ich erzähle das viel, aber aus Liebe zu Gott versuchen Sie bitte nicht, Ihr eigenes Authentifizierungssystem zu implementieren. Es wird wahrscheinlich unsicher sein (viel kann schief gehen), viel Arbeit. Für die Authentifizierung sollten Sie Facebook-Connect, Twitter Single Sign-In usw. mit der hervorragenden Connect-Auth- Bibliothek verwenden. Dann sind Sie sicher abgesichert, weil sie Experten haben, die dort Anmeldesysteme auf Löcher testen und die Passwörter auch nicht per Klartext übertragen, sondern Gott sei Dank für die Verwendung von https. Ich habe auch ein Thema für einen Benutzer beantwortet, der Facebook-Connect verwenden wollte .
Validierung von Eingabedaten
Um die Eingabe zu validieren, können Sie den Node-Validator verwenden .
Es gibt auch diese Formularbibliothek, mit der Sie Formulare erstellen können.
quelle