<technologies-web/> 
<metaname="author"content="Pierre-Emmanuel Altieri, Clément Casu, Oussama Ezzayer, Raphaël Kiffer">
Menu du jour
27/05/2009 
Ryan Dahl 
0.1.33
Ils y croient
2011 
Tim Fox 
2.1.4
Ils y croient
The C10k Problem 
Le c10k […] est un code numérique utilisé pour exprimer la limitation que la plupart des serveurs ont en...
«Origins» 
Reactor 
Vérification 
Événement 
Exécution 
Callback 
Requête Web ou callback 
Choix de l’événement 
Exécution...
Programmation événementielle 
boucle principale 
Event Loop
Programmation événementielle 
fs =require('fs'); 
vardata =fs.readFileSync('file.txt') 
// Leflot d’exécution est bloqué j...
Avant/Après 
Serveur 
Thread 
Thread 
Thread 
Thread 
Requête 
Requête 
Requête 
Requête
Avant/Après 
Serveur 
Thread 
Requête 
Requête 
Requête 
Requête
Avant/Après
Reactive Programming 
Responsive 
Élastique 
Event-driven 
Scalable 
Réactif en terme d’UI 
Réactif aux erreurs 
Réactif a...
Bootstrap 
varvertx =require('vertx'); 
vertx.createHttpServer() 
.requestHandler(function(req){ 
varfile =req.path()==='/...
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Cont...
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Cont...
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Cont...
Bootstrap 
$ node server.js 
varhttp =require('http'); 
http.createServer(function(req, res){ 
res.writeHead(200, { 
'Cont...
Versus 
Environnement 
Modules 
npm 
Verticles 
Event Bus 
Shared Data 
1 process 
Workflow
Et les performances ? 
0 
200 
400 
600 
800 
1000 
1200 
1400 
1600 
1800 
2000 
Ajout JSON 
Hello World 
Concatenation S...
Merci !
Prochain SlideShare
Chargement dans…5
×

nodejs vs vertx

885 vues

Publié le

Comparatif NodeJS et Vertx

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
885
Sur SlideShare
0
Issues des intégrations
0
Intégrations
64
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

nodejs vs vertx

  1. 1. <technologies-web/> <metaname="author"content="Pierre-Emmanuel Altieri, Clément Casu, Oussama Ezzayer, Raphaël Kiffer">
  2. 2. Menu du jour
  3. 3. 27/05/2009 Ryan Dahl 0.1.33
  4. 4. Ils y croient
  5. 5. 2011 Tim Fox 2.1.4
  6. 6. Ils y croient
  7. 7. The C10k Problem Le c10k […] est un code numérique utilisé pour exprimer la limitation que la plupart des serveurs ont en termes de connexions réseaux. http://fr.wikipedia.org/wiki/C10k_problem
  8. 8. «Origins» Reactor Vérification Événement Exécution Callback Requête Web ou callback Choix de l’événement Exécution de l’événement Lancement de callback avec données
  9. 9. Programmation événementielle boucle principale Event Loop
  10. 10. Programmation événementielle fs =require('fs'); vardata =fs.readFileSync('file.txt') // Leflot d’exécution est bloqué jusqu’à la fin de l’exécution console.log(data) fs =require('fs'); fs.readFile('file.txt', function(error, data) { // Exécutionà la fin de l’opérationconsole.log(data) });
  11. 11. Avant/Après Serveur Thread Thread Thread Thread Requête Requête Requête Requête
  12. 12. Avant/Après Serveur Thread Requête Requête Requête Requête
  13. 13. Avant/Après
  14. 14. Reactive Programming Responsive Élastique Event-driven Scalable Réactif en terme d’UI Réactif aux erreurs Réactif aux événements Réactif à la charge
  15. 15. Bootstrap varvertx =require('vertx'); vertx.createHttpServer() .requestHandler(function(req){ varfile =req.path()==='/'? 'index.html': req.path(); req.response.sendFile('app/'+file); }).listen(8080); console.log('Server is running'); $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun server.js
  16. 16. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun Server.java publicclassServer extendsVerticle { publicvoidstart(){ vertx.createHttpServer().requestHandler( newHandler<HttpServerRequest>(){ publicvoidhandle(HttpServerRequest req){ Stringfile =req.path().equals("/")? "index.html": req.path(); req.response().sendFile("app/"+file); } }).listen(8080); } }
  17. 17. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun server.rb require"vertx" Vertx::HttpServer.new.request_handler do |req| file =req.uri =="/"?"index.html": req.uri req.response.send_file "webroot/#{file}" end.listen(8080)
  18. 18. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun Server.groovy vertx.createHttpServer().requestHandler {req -> def file =req.uri =="/"? "index.html": req.uri req.response.sendFile "app/$file" }.listen(8080)
  19. 19. Bootstrap $ node server.js varhttp =require('http'); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'text/plain‘ }); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1'); console.log('Server is running'); $ vertxrun server.py importvertx server =vertx.create_http_server() @server.request_handler def request_handler(req): file ="index.html"ifreq.uri =="/"elsereq.uri req.response.send_file("app/%s"%file) server.listen(8080)
  20. 20. Versus Environnement Modules npm Verticles Event Bus Shared Data 1 process Workflow
  21. 21. Et les performances ? 0 200 400 600 800 1000 1200 1400 1600 1800 2000 Ajout JSON Hello World Concatenation String Fibo(30) recursif NodeJS (tr/s) Vert.X (tr/s) NodeJS (mem) Vert.X (mem)
  22. 22. Merci !

×