Ich habe über das C10K-Problem gelesen und insbesondere den Teil, der sich auf asynchrone Server-E / A bezieht. http://www.kegel.com/c10k.html#aio
Ich glaube, dies fasst ziemlich genau zusammen, was Node.js auf dem Server tut, indem es Threads ermöglicht, Benutzeranforderungen zu verarbeiten, während sie sich auf E / A-Interrupts (Ereignisse) verlassen, um Threads über abgeschlossene Jobs zu benachrichtigen, anstatt dass der Thread für den Thread verantwortlich ist voller CPU-Auftrag. Der Thread kann sich mit anderen Dingen auseinandersetzen (nicht blockieren) und benachrichtigt werden, wenn ein Auftrag erledigt ist (z. B. wenn eine Datei gefunden oder ein Video komprimiert wurde).
Dies bedeutet später, dass ein Thread mehr für Sockets und damit für Benutzer auf dem Server verfügbar ist.
Dann habe ich folgendes gefunden: http://teddziuba.com/2011/10/straight-talk-on-event-loops.html
Der Autor hier behauptet, dass das ereignisgesteuerte Framework (unterbrochenes Threading) zwar Threads freigibt, aber den Arbeitsaufwand einer CPU nicht wirklich verringert! Der Grund hierfür ist, dass, wenn ein Benutzer beispielsweise ein hochgeladenes Video komprimieren möchte, die CPU diesen Job noch ausführen muss und währenddessen blockiert (zur Vereinfachung sollten Sie hier die Parallelität außer Sie vergessen besser wissen!).
Ich bin ein unkomplizierter Programmierer, kein Serveradministrator oder ähnliches. Ich möchte nur wissen, ob Node.js ein Geschenk der Götter des Cloud Computing ist oder ob es nur heiße Luft ist und ob Unternehmen nicht durch die Verbesserung der Skalierbarkeit Zeit und / oder Geld sparen können.
Danke vielmals.