node.js scalabile, cosa si intende per quello? Quale parte di un server node.js è scalabile. Ho letto che si tratta di una tecnologia a thread singolo che non è adatta per le applicazioni che necessitano di molte risorse della CPU. Questi fatti non si adattano alla scalabilità, quindi cosa si intende per questo?Perché Node.js è scalabile?
risposta
Il javascript su cui viene eseguito il nodo è a thread singolo, ma molte delle cose che chiamate nel nodo - come rete o file io - vengono eseguite in thread in background. Vedi questo post per una panoramica di base: Node is not single threaded
Se avete bisogno i dettagli grintosi, si dovrebbe guardare in libuv, che è il pezzo 'magia' convertire le discussioni in caso loop: http://nikhilm.github.io/uvbook/basics.html#event-loops
Inoltre, se avete bisogno di per fare qualcosa a livello di CPU nel nodo stesso, puoi facilmente inviarlo a un processo figlio - vedi http://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options per dettagli
Sono operazioni come la lettura dal database o l'aggiornamento, il blocco o il non blocco? Questo è w.r.t per RDBMS. Suggerite Nodo per tali app? – LearningToCode
è scalabile a causa del bilanciamento del carico. Essenzialmente è possibile avere più processi per il nodo da elaborare e può gestirlo senza oneri significativi. Questo lo rende scalabile.
Come viene realizzato il bilanciamento del carico? – vuvu
Non è più "di per sé" scalabile. È più che tutto ciò che fai è (I/O) scalabile senza dover fare nulla di speciale.
I/O è più sicuro e più semplice da eseguire in parallelo, poiché tende a non condividere dati tra i thread di esecuzione. Node.js ti permette di farlo usando la programmazione di eventi che è semplice, elegante e facile da usare. È un paradigma di programmazione vecchio e provato, utilizzato per anni dalle GUI e da altre applicazioni grafiche intensive come i giochi, ad esempio.
In effetti è meno scalabile rispetto a linguaggi completi come C++, c, java, ecc. Che possono essere scalati molto meglio utilizzando il multithreading completo. Ciò consente di scalare anche la CPU, ma apre anche una lattina di worm. Per condividere la CPU, devi condividere i dati, e questa è un'altra storia (semafori, serrature, ecc ...)
Puoi fare lo stesso di node.js con una qualsiasi delle lingue sopra, ma non fa parte del linguaggio stesso, quindi devi eseguire il rollover o utilizzare le librerie che lo forniscono. Detto questo, non è così difficile, ma sicuramente più difficile di in node.js.
La maggior parte dei servizi Web, sono legati all'IO, quindi Node.js si adatta bene ed è OK per la maggior parte dei casi. Ma una volta che si inizia a utilizzare il lavoro intensivo della CPU, gli eventi non sono assistiti e tutti si fermano. In tal caso, utilizzare meglio un'altra lingua. Non c'è davvero una buona soluzione in Node per questo. È possibile generare più processi, ma non sarà possibile condividere i dati tra di essi. Senza la condivisione dei dati, non c'è modo di scalare la CPU in modo efficiente, quindi meglio non provarci.
Utilizzare Node.js per IO e un linguaggio più adatto con multithreading appropriato per il lavoro intensivo della CPU.
Tutte le API del nodo sono scritte in modo tale da supportare i callback.
Ad esempio, una funzione per leggere un file può iniziare a leggere il file e restituire il controllo all'ambiente di esecuzione immidamente in modo da poter eseguire l'istruzione successiva. Una volta che l'I/O del file è completo, chiamerà la funzione di callback mentre passa la funzione di callback, il contenuto del file come parametro. Quindi non c'è alcun blocco o attendere I/O di file. Ciò rende Node.js estremamente scalabile, in quanto può elaborare un numero elevato di richieste senza attendere che alcuna funzione restituisca un risultato. - Punto dell'esercitazione.
- 1. nginx/node.js/postgres è un'architettura molto scalabile?
- 2. Perché Java EE è scalabile?
- 3. perché la struttura del sollevatore è scalabile?
- 4. Quanto è scalabile Grails?
- 5. Quanto è scalabile ZeroMQ?
- 6. Quanto è scalabile il Jetty?
- 7. Perché questo metodo di ricerca non è scalabile?
- 8. Quanto è scalabile la distribuzione di Erlang?
- 9. Perché IndexedDB non è disponibile in node.js?
- 10. Perché node.js bisogno pitone
- 11. Perché il mio test più scalabile non verrà compilato? (Scala.MatchError)
- 12. Perché NoSQL dice che il RDBMS tradizionale non è adatto allo scalabile
- 13. Applicazione Java scalabile con Hazelcast
- 14. Nel REPL Node.js, perché succede?
- 15. Ricerca di un'implementazione scalabile "a"
- 16. Sito scalabile di ticketing/festival
- 17. Perché node.js non rilascia memoria?
- 18. Il php è scalabile con polling lungo ajax inverso?
- 19. gevent + gunicorn è scalabile e stabile per uso produttivo?
- 20. Perché non è stato compilato Node.js prima del runtime?
- 21. perché la API del dominio è deprecata in Node.js?
- 22. Perché questo codice è bloccato node.js - Bug su Javascript?
- 23. Qual è l'architettura Node.js corretta?
- 24. Layout JavaFX scalabile con il genitore
- 25. richiedono non è definito? node.js
- 26. Schema di codifica del database scalabile
- 27. Caricamento file host autonomo scalabile su Ruby on Rails
- 28. hibernate vs ebean come scalabile, performante ORM
- 29. Wordpress di Azure e Wordpress scalabile
- 30. Creazione di un'applicazione Web scalabile ASP.NET MVC
Duplicato di: [Scaling node.js] (http://stackoverflow.com/questions/4710420/scaling-node-js). –
@Jason Non sto cercando risposte di codifica tecnica – vuvu
In questo post viene evidenziata la scalabilità, incluso il bilanciamento del carico e le redis. –