Node.js O servlet? [chiuso]


10

Ho sentito molto e letto della lingua lato server Javascript, ad esempio Node.js, e ho visto molti confronti a favore di Node.

Non capisco cosa lo rende migliore o più veloce, o come si collega a qualcosa di maturo come i servlet Java.

Ma i servlet sono basati su un linguaggio di programmazione multithread invece di Node.js. Allora come può node.js essere più veloce?

Se supponiamo che gli utenti 1000K eseguano una query per i record di un database, Node.js non dovrebbe essere più lento dei Servlet.

Inoltre i servlet non hanno una sicurezza migliore rispetto a Node.js?


Sia i processi che i thread possono essere utilizzati per ridimensionare qualsiasi applicazione per l'utilizzo multi-core. Non hai bisogno di entrambi.
Raynos,

@Raynos Non è possibile eseguire il threading anche della funzionalità C associata? Ho appena assunto il ruolo di JS come messaggero a blocco automatico non bloccante per passare le cose a cose di livello inferiore ma non ho ancora ottenuto le mie zampe su Node.
Erik Reppen,

Risposte:


12

Stai mescolando mele e arance, un po '.

I servlet (o ereditando da HttpServlet) ti consentono di accedere ai parametri della richiesta HTTP e di rispondere con qualcosa, tramite (o sopra) un'implementazione del server HTTP esistente.

Sebbene utilizzi Javascript come lingua, Node.js è di livello inferiore. Si parte dalla realtà attuare il server HTTP. Puoi continuare a fare più cose di alto livello, ad esempio applicazioni web.

A proposito del multi-threading, non è necessario. I server Node.js non sono più veloci a causa del multi-threading, sono più veloci perché non bloccano le richieste IO, quindi possono continuare a pomparli in coda, mentre fanno altre cose. Funzionano solo quando c'è del lavoro da fare - non lo aspettano - e questo provoca un serio miglioramento delle prestazioni, come si è scoperto.

Per quanto riguarda le query sul database, si tratta in realtà di più sui vincoli nel modello di database e nell'API che sul client.

Per quanto riguarda la sicurezza, è davvero un argomento diverso, ed è comunque nelle mani di qualsiasi sviluppatore, non tanto nella biblioteca.


3
Servlet 3 supporta IO asincrono proprio come Nodo
jiggy

3
jiggy - C'è una grande differenza tra supportare qualcosa ed essere progettati da zero per qualcosa. Il nodo asincrono è il secondo.
Jack,

1
@Yam Marcovic, non capisco ancora cosa intendi con "non bloccano le richieste di IO" Anche in JEE un thread verrebbe eseguito in modo indipendente e non fermerebbe un'altra richiesta da servire. Come viene creato un nuovo thread per richiesta. Sto dando un senso?
Oliver,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.