Node.JS - Campus Party Brasil 2011
-
Upload
emerson-macedo -
Category
Technology
-
view
6.366 -
download
3
description
Transcript of Node.JS - Campus Party Brasil 2011
![Page 1: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/1.jpg)
Emerson Macedo@emerleite
http://nodecasts.orghttp://codificando.com
http://groups.google.com/group/nodebr
Capus Party 2011
![Page 2: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/2.jpg)
![Page 3: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/3.jpg)
#performance
![Page 4: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/4.jpg)
2000
![Page 5: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/5.jpg)
360 milhões de usuários de internet
em todo mundo
![Page 6: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/6.jpg)
![Page 7: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/7.jpg)
9,8 milhões de usuários
![Page 8: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/8.jpg)
9,8 milhões de usuários
4,8 milhões são ativos
![Page 9: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/9.jpg)
![Page 10: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/10.jpg)
2010
![Page 11: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/11.jpg)
~ 2 bilhões de usuários de internet
em todo mundo
![Page 12: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/12.jpg)
![Page 13: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/13.jpg)
68 milhões de usuários
![Page 14: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/14.jpg)
68 milhões de usuários
37 milhões são ativos
![Page 15: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/15.jpg)
![Page 16: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/16.jpg)
![Page 17: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/17.jpg)
2014
![Page 18: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/18.jpg)
~ 70% dos adultos serão usuários regulares de redes sociais
![Page 19: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/19.jpg)
![Page 20: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/20.jpg)
![Page 21: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/21.jpg)
![Page 22: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/22.jpg)
Tecnologias atuais
![Page 23: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/23.jpg)
![Page 24: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/24.jpg)
![Page 25: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/25.jpg)
![Page 26: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/26.jpg)
![Page 27: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/27.jpg)
![Page 28: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/28.jpg)
Todas essas tecnologias tem algo em comum
![Page 29: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/29.jpg)
PHP 1995
![Page 30: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/30.jpg)
PHP 1995
Java EE 1998
![Page 31: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/31.jpg)
PHP 1995
Java EE 1998
ASP.Net 2001
![Page 32: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/32.jpg)
PHP 1995
Java EE 1998
ASP.Net 2001
Ruby on Rails 2004
![Page 33: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/33.jpg)
PHP 1995
Java EE 1998
ASP.Net 2001
Ruby on Rails 2004
Django 2006
![Page 34: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/34.jpg)
Por que então mais uma tecnologia ?
![Page 35: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/35.jpg)
0
500
1000
1500
2000
2000 2010
2.000 milhões
360 milhões
Usuários de Internet no Mundo (em milhões)
![Page 36: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/36.jpg)
0
17,5
35
52,5
70
2000 2010
70 milhões
10 milhões
Usuários de Internet no Brasil (em milhões)
![Page 37: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/37.jpg)
Mas já escalamos muito bem nossos sites
![Page 38: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/38.jpg)
Estrutura física de servidores para escalar
![Page 39: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/39.jpg)
Escalando na vertical
![Page 40: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/40.jpg)
Escalando na vertical
![Page 41: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/41.jpg)
Escalando na horizontal
![Page 42: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/42.jpg)
Escalando na horizontal
![Page 43: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/43.jpg)
Escalando na horizontal
![Page 44: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/44.jpg)
Escalando na horizontal
![Page 45: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/45.jpg)
![Page 46: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/46.jpg)
Escalando DB na horizontal
write
read
write write
read
![Page 47: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/47.jpg)
Escalando DB na horizontal
ShardDatabase
ShardDatabase
ShardDatabase
ShardDatabase
ShardDatabase
ShardDatabase
![Page 48: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/48.jpg)
![Page 49: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/49.jpg)
Arquitetura pra fazer o software escalar
![Page 50: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/50.jpg)
Pattern para atender muitos requests
![Page 51: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/51.jpg)
Pattern para atender muitos requests
Finalize a requisição o mais rápido possível
![Page 52: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/52.jpg)
HTTP GET
![Page 53: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/53.jpg)
![Page 54: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/54.jpg)
![Page 55: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/55.jpg)
![Page 56: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/56.jpg)
![Page 57: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/57.jpg)
![Page 58: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/58.jpg)
HTTP POST
![Page 59: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/59.jpg)
![Page 60: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/60.jpg)
![Page 61: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/61.jpg)
![Page 62: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/62.jpg)
![Page 63: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/63.jpg)
![Page 64: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/64.jpg)
Por que então mais uma tecnologia ?
![Page 65: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/65.jpg)
![Page 66: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/66.jpg)
Escalando na horizontal
![Page 67: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/67.jpg)
Escalando na horizontal
![Page 68: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/68.jpg)
![Page 69: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/69.jpg)
![Page 70: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/70.jpg)
Evented, non-blocking I/O Google V8 Engine
![Page 71: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/71.jpg)
Qual é o problema das tecnologias atuais ?
![Page 72: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/72.jpg)
Como manter conectados 10, 20 ou
30 mil usuários simultâneos ?
![Page 73: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/73.jpg)
Nosso código costuma ser escrito assim
![Page 74: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/74.jpg)
Nosso código costuma ser escrito assim
O que o software está fazendo enquanto a querie executa ?
![Page 75: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/75.jpg)
Na maioria dos casos está travado esperando
a resposta
![Page 76: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/76.jpg)
Rails ou Django
HTTPD Database
![Page 77: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/77.jpg)
Rails ou Django
HTTPD Database
![Page 78: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/78.jpg)
Rails ou Django
HTTPD Database
![Page 79: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/79.jpg)
Rails ou Django
HTTPD
RUNTIMEPROCESS
Database
![Page 80: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/80.jpg)
Rails ou Django
HTTPD
RUNTIMEPROCESS
Database
BLOCK
![Page 81: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/81.jpg)
Rails ou Django
HTTPD
RUNTIMEPROCESS
RUNTIMEPROCESS
RUNTIMEPROCESS
RUNTIMEPROCESS
Database
BLOCK
BLOCK
BLOCK
BLOCK
![Page 82: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/82.jpg)
![Page 83: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/83.jpg)
![Page 84: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/84.jpg)
Java
HTTPD Database
Servlet Container
Servlet
![Page 85: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/85.jpg)
Java
HTTPD Database
Servlet Container
Servlet
![Page 86: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/86.jpg)
Java
HTTPD Database
Servlet Container
Servlet
![Page 87: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/87.jpg)
Java
HTTPD Database
Servlet ContainerThread
Servlet
![Page 88: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/88.jpg)
Java
HTTPD Database
Servlet ContainerThread
Servlet
BLOCK
![Page 89: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/89.jpg)
Java
HTTPD Database
Servlet ContainerThread
Thread
Thread
Thread
Thread
Thread
Thread
Servlet
BLOCK
BLOCK
BLOCK
BLOCK
BLOCK
BLOCK
BLOCK
![Page 90: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/90.jpg)
Apenas um processo abrindo uma thread para cada request
![Page 91: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/91.jpg)
![Page 92: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/92.jpg)
![Page 93: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/93.jpg)
Produtividade do programador mais que
performance da tecnologia
![Page 94: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/94.jpg)
Apenas um processo abrindo uma thread para cada request
![Page 95: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/95.jpg)
Parece bom mas ...
![Page 96: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/96.jpg)
Como manter conectados 10, 20 ou
30 mil usuários simultâneos ?
![Page 97: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/97.jpg)
Como manter conectados 10, 20 ou
30 mil usuários simultâneos ?
30 mil threads ?
![Page 98: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/98.jpg)
Apache vs NGINXconcurrency × reqs/sec
http://blog.webfaction.com/a-little-holiday-present
Apache vs NGINXconcurrency × reqs/sec
http://blog.webfaction.com/a-little-holiday-present
![Page 99: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/99.jpg)
Apache vs NGINXconcurrency × memory
http://blog.webfaction.com/a-little-holiday-present
Apache vs NGINXconcurrency × reqs/sec
http://blog.webfaction.com/a-little-holiday-present
![Page 100: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/100.jpg)
Apache cria uma thread por request
![Page 101: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/101.jpg)
Troca de contexto entre theads tem
um custo
![Page 102: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/102.jpg)
Cada OS Thread cria uma pilha de execução nova
![Page 103: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/103.jpg)
Pense bem antes de usar uma thread por
request quando precisar suportar alta
concorrência
![Page 104: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/104.jpg)
Como manter conectados 10, 20 ou
30 mil usuários simultâneos ?
![Page 105: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/105.jpg)
![Page 106: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/106.jpg)
Pattern para atender muitos requests
Finalize a requisição o mais rápido possível
![Page 107: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/107.jpg)
Pattern para atender alta concorrência
![Page 108: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/108.jpg)
Pattern para atender alta concorrência
Evite threads
![Page 109: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/109.jpg)
Pattern para atender alta concorrência
Evite threads
Use um Event Loop
![Page 110: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/110.jpg)
Performance!=
Escalabilidade
![Page 111: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/111.jpg)
Performance!=
Escalabilidade
mas ...
![Page 112: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/112.jpg)
Uma performance melhor ajuda a escalar com menos recursos
![Page 113: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/113.jpg)
![Page 114: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/114.jpg)
![Page 115: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/115.jpg)
Precisamos fazer I/O de outra maneira
![Page 116: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/116.jpg)
Latência de I/O
![Page 117: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/117.jpg)
L1 3 ciclos
Latência de I/O
![Page 118: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/118.jpg)
L1 3 ciclos
L2 14 ciclos
Latência de I/O
![Page 119: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/119.jpg)
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Latência de I/O
![Page 120: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/120.jpg)
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Disco 41.000.000 ciclos
Latência de I/O
![Page 121: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/121.jpg)
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Disco 41.000.000 ciclos
Rede 240.000.000 ciclos
Latência de I/O
![Page 122: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/122.jpg)
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Disco 41.000.000 ciclos
Rede 240.000.000 ciclos
Latência de I/O
![Page 123: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/123.jpg)
I/O não bloqueante
![Page 124: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/124.jpg)
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
I/O não bloqueante
![Page 125: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/125.jpg)
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
I/O não bloqueante
I/O bloqueante
![Page 126: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/126.jpg)
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Disco 41.000.000 ciclos
Rede 240.000.000 ciclos
I/O não bloqueante
I/O bloqueante
![Page 127: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/127.jpg)
Infraestrutura não bloqueante, puramente baseada em eventos, para desenvolver
software de alta concorrência
![Page 128: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/128.jpg)
Servidor TCP simples em NodeJS
O código acima faz com que a execução retorne imediatamente ao event loop
![Page 129: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/129.jpg)
Por que já não faziamos dessa forma ?
![Page 130: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/130.jpg)
![Page 131: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/131.jpg)
POSIX Assync I/O não suportado por todos
os S.Os
![Page 132: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/132.jpg)
POSIX Assync I/O não suportado por todos
os S.Os
libmysql_client não permite query async
![Page 133: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/133.jpg)
Filosofia do NodeJS
![Page 134: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/134.jpg)
Filosofia do NodeJS
Todo I/O deveria ser feito desta forma
![Page 135: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/135.jpg)
Para qualquer operação que acesse o disco ou a rede deve existir um callback
![Page 136: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/136.jpg)
Arquitetura
eventloop
(libev)
threadpool
(libeio)
V8
Node Bindings
Node standard libraryJavascript
C
![Page 137: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/137.jpg)
ev_loop()
Pilha de execução
I/O em disco (bloqueante)
![Page 138: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/138.jpg)
ev_loop()
socket_readdable(1)
Pilha de execução
I/O em disco (bloqueante)
![Page 139: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/139.jpg)
ev_loop()
socket_readdable(1)
http_parse(1)
Pilha de execução
I/O em disco (bloqueante)
![Page 140: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/140.jpg)
ev_loop()
socket_readdable(1)
http_parse(1)
Pilha de execução
load(“index.html”)
I/O em disco (bloqueante)
![Page 141: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/141.jpg)
ev_loop()
socket_readdable(1)
http_parse(1)
Pilha de execução
I/O em disco (bloqueante)
![Page 142: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/142.jpg)
ev_loop()
socket_readdable(1)
Pilha de execução
I/O em disco (bloqueante)
![Page 143: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/143.jpg)
ev_loop()
Pilha de execução
I/O em disco (bloqueante)
![Page 144: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/144.jpg)
ev_loop()
Pilha de execução
I/O em RAM (não bloqueante)
![Page 145: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/145.jpg)
ev_loop()
socket_readdable(2)
Pilha de execução
I/O em RAM (não bloqueante)
![Page 146: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/146.jpg)
ev_loop()
socket_readdable(2)
http_parse(2)
Pilha de execução
I/O em RAM (não bloqueante)
![Page 147: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/147.jpg)
ev_loop()
socket_readdable(2)
http_parse(2)
Pilha de execução
http_respond(2)
I/O em RAM (não bloqueante)
![Page 148: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/148.jpg)
ev_loop()
socket_readdable(2)
http_parse(2)
Pilha de execução
I/O em RAM (não bloqueante)
![Page 149: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/149.jpg)
ev_loop()
socket_readdable(2)
Pilha de execução
I/O em RAM (não bloqueante)
![Page 150: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/150.jpg)
ev_loop()
Pilha de execução
I/O em RAM (não bloqueante)
![Page 151: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/151.jpg)
ev_loop()
Pilha de execução
Arquivo carregou do disco
![Page 152: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/152.jpg)
ev_loop()
file_loaded()
Pilha de execução
Arquivo carregou do disco
![Page 153: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/153.jpg)
ev_loop()
file_loaded()
http_respond(1)
Pilha de execução
Arquivo carregou do disco
![Page 154: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/154.jpg)
ev_loop()
file_loaded()
Pilha de execução
Arquivo carregou do disco
![Page 155: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/155.jpg)
ev_loop()
Pilha de execução
Arquivo carregou do disco
![Page 156: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/156.jpg)
Arquitetura Web
![Page 157: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/157.jpg)
Arquitetura Web
Nginx
![Page 158: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/158.jpg)
Arquitetura Web
Rubyor
Python
Rubyor
Python
Rubyor
Python
Rubyor
Python
Rubyor
Python
Nginx
![Page 159: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/159.jpg)
Arquitetura Web
Rubyor
Python
Rubyor
Python
Rubyor
Python
Rubyor
Python
Rubyor
Python
Nginx
NodeJS
![Page 160: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/160.jpg)
Arquitetura Web
Nginx
![Page 161: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/161.jpg)
Arquitetura Web
Nginx
NodeJS
![Page 162: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/162.jpg)
Arquitetura Web
NodeJS
![Page 163: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/163.jpg)
Arquitetura Web
NodeJS
Quando NodeJS estiver bem maduro, a idéia de Ryan é que ele seja a porta de
entrada. Será ?
![Page 164: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/164.jpg)
#simplicidade
![Page 165: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/165.jpg)
Produtividade do programador mais que
performance da tecnologia
![Page 166: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/166.jpg)
![Page 167: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/167.jpg)
![Page 168: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/168.jpg)
![Page 169: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/169.jpg)
![Page 170: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/170.jpg)
Don’t Repeat Yourself
![Page 171: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/171.jpg)
![Page 172: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/172.jpg)
![Page 173: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/173.jpg)
![Page 174: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/174.jpg)
![Page 175: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/175.jpg)
![Page 176: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/176.jpg)
![Page 177: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/177.jpg)
XML
Properties
YAML
Configurações
![Page 178: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/178.jpg)
XML
Properties
YAML
Configurações
JSON
Transporte
![Page 179: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/179.jpg)
Configurações
JSON
![Page 180: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/180.jpg)
Configurações
JSON
![Page 181: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/181.jpg)
Configurações
JSON
Transporte
![Page 182: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/182.jpg)
Configurações
Javascript Object Notation
Transporte
![Page 183: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/183.jpg)
Java Ruby Python
Server Side
PHP
![Page 184: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/184.jpg)
Java Ruby Python
Server Side
PHP
Client Side
JavaScript
![Page 185: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/185.jpg)
Server Side
JavaScript
![Page 186: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/186.jpg)
Server Side
JavaScript
![Page 187: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/187.jpg)
Server Side
JavaScript
Client Side
![Page 188: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/188.jpg)
#ecossistema
![Page 189: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/189.jpg)
![Page 190: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/190.jpg)
![Page 191: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/191.jpg)
Sinatra detected !
![Page 192: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/192.jpg)
![Page 194: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/194.jpg)
Test driven development
![Page 195: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/195.jpg)
Test driven development#http://github.com/visionmedia/expresso/
![Page 196: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/196.jpg)
![Page 197: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/197.jpg)
![Page 198: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/198.jpg)
![Page 199: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/199.jpg)
![Page 200: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/200.jpg)
![Page 201: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/201.jpg)
![Page 202: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/202.jpg)
![Page 203: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/203.jpg)
![Page 204: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/204.jpg)
![Page 205: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/205.jpg)
![Page 206: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/206.jpg)
![Page 207: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/207.jpg)
![Page 208: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/208.jpg)
#LIVE
![Page 209: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/209.jpg)
Obrigado !!!
Emerson Macedo@emerleite
http://nodecasts.orghttp://codificando.com
![Page 210: Node.JS - Campus Party Brasil 2011](https://reader035.fdocuments.net/reader035/viewer/2022062614/5465f8acaf795969338b504b/html5/thumbnails/210.jpg)
Referênciashttp://www.internetworldstats.com/emarketing.htm
http://en.wikipedia.org/wiki/Event_loop
http://lse.sourceforge.net/io/aio.html
http://code.google.com/p/v8/
http://opengroup.org/onlinepubs/007908775/xsh/select.html
http://en.wikipedia.org/wiki/Thread_pool_pattern
http://www.commonjs.org/specs/modules/1.0/
http://en.wikipedia.org/wiki/File_descriptor
http://en.wikipedia.org/wiki/Reactor_pattern