Ich habe viel über die serverseitige Javascript-Sprache, dh Node.js, gehört und gelesen und viele Vergleiche zugunsten von Node gesehen.
Ich verstehe nicht, was es besser oder schneller macht oder wie es sich überhaupt auf etwas bezieht, das so ausgereift ist wie Java-Servlets.
Servlets basieren jedoch auf einer Multithread-Programmiersprache im Gegensatz zu Node.js. Wie kann node.js dann schneller sein?
Wenn 1000 KB Benutzer nach Datenbankeinträgen fragen, sollte Node.js nicht langsamer als Servlets sein.
Haben Servlets im Vergleich zu Node.js keine bessere Sicherheit?
javascript
java-ee
node.js
log N.
quelle
quelle
Antworten:
Sie mischen Äpfel und Orangen.
Mit Servlets (oder dem Erben von HttpServlet) können Sie über eine vorhandene HTTP-Server-Implementierung auf HTTP-Anforderungsparameter zugreifen und mit etwas antworten (oder darüber hinaus).
Obwohl Node.js Javascript als Sprache verwendet, befindet es sich auf einer niedrigeren Ebene. Es beginnt mit der tatsächlichen Implementierung des HTTP-Servers. Sie können jedoch weiterhin mehr hochrangige Aufgaben ausführen, z. B. Webanwendungen.
Über Multithreading ist dies nicht erforderlich. Node.js Server sind aufgrund von Multithreading nicht schneller, sie sind schneller, weil sie E / A-Anforderungen nicht blockieren, sodass sie sie weiterhin in der Warteschlange hochpumpen können, während sie andere Dinge tun. Sie funktionieren nur, wenn noch etwas zu tun ist - sie warten nicht darauf - und das führt, wie sich herausstellte, zu einer ernsthaften Leistungssteigerung.
Bei Datenbankabfragen geht es mehr um Einschränkungen im Datenbankmodell und in der API als um den Client.
Was die Sicherheit betrifft - es ist wirklich ein anderes Thema und liegt letztendlich sowieso in den Händen eines Entwicklers, nicht so sehr in der Bibliothek.
quelle