nodejs vs vertx

891 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
891
Sur SlideShare
0
Issues des intégrations
0
Intégrations
68
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 !

×