Ho letto del problema C10K e, in particolare, la parte che fa riferimento all'I / O del server asincrono. link
Credo che questo riepiloghi quasi esattamente ciò che Node.js fa sul server, consentendo ai thread di elaborare le richieste degli utenti facendo affidamento sugli interrupt I / O (eventi) per notificare i thread dei lavori completati, piuttosto che avere il thread da responsabile del lavoro completo della CPU. Il thread può andare avanti con altre cose (non bloccanti) e ricevere una notifica di quando un lavoro viene eseguito (ad esempio, un file viene trovato o un video è compresso).
Ciò significa che un thread è più "disponibile" per i socket e quindi per gli utenti sul server.
Poi ho trovato questo: link
Lo scrittore qui afferma che sebbene il framework basato sugli eventi (threading interrotto), possa liberare i thread, in realtà non riduce la quantità di lavoro che una CPU deve fare! La logica qui è che se, ad esempio, un utente richiede di comprimere un video che ha caricato, la CPU deve ancora fare questo lavoro, e bloccherà mentre lo fa (per semplicità, dimentichiamo il parallelismo qui - a meno che tu sapere meglio!).
Sono un programmatore semplice, non un amministratore del server o qualcosa del genere. Sono solo interessato a sapere: Node.js è un regalo degli dei del "cloud computing" o è tutto aria calda, e in realtà non farà risparmiare alle aziende tempo e / o denaro migliorando la scalabilità?
Grazie mille.