“Hvordan levere live-oppdateringer til mange brukere samtidig med Node.js?”, Dagbladets Gunnar Fornes på NONA12
Upcoming SlideShare
Loading in...5
×
 

“Hvordan levere live-oppdateringer til mange brukere samtidig med Node.js?”, Dagbladets Gunnar Fornes på NONA12

on

  • 2,068 views

 

Statistics

Views

Total Views
2,068
Views on SlideShare
853
Embed Views
1,215

Actions

Likes
0
Downloads
4
Comments
0

3 Embeds 1,215

http://www.netthoder.no 850
http://netthoder.no 363
http://translate.googleusercontent.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

“Hvordan levere live-oppdateringer til mange brukere samtidig med Node.js?”, Dagbladets Gunnar Fornes på NONA12 “Hvordan levere live-oppdateringer til mange brukere samtidig med Node.js?”, Dagbladets Gunnar Fornes på NONA12 Presentation Transcript

  • Skalerbare websocket-tjenester med Node.js
  • Prosjekt: Dagbladet Livestudio
  • Websockets• F5 -> Ajax -> Websockets• Websockets: Holder forbindelsen åpen• Ajax: Ringer opp på nytt• Kan gi oppdateringer i sanntid• Holde samtalen / ringe opp på nytt – En annen måte å se på det: • Å konstant holde F5-knappen nede
  • Eksempler• Eksempel på websocket-tjenester: – Facebook, Twitter – Forex Trading: http://demo.kaazing.com/forex/ – Spaceships: https://developer.mozilla.org/media/uploads/demos/o/n/ond – Browserquest: http://browserquest.mozilla.org/
  • Andre applikasjoner som kan dra nytte av websockets• Applikasjoner som trenger oppdateringer i sanntid• Responsivt debattforum• Google Docs-lignende applikasjoner – For eks for felles forside-redigering• Live børs-oversikt• Twitter-lignende applikasjoner• Interaktive multiplayer-spill for web
  • Utvikler-verktøyene• Node.js – Webserver/nettverksapplikasjon – Brukes av blant annet Yahoo, Ebay, Linkedin, Microsoft Azure, Cloud9, Klout, Mockingbird• Socket.io – Populær node-modul for å jobbe med websocket-tilkoblinger• Redis – Gir skaleringsmuligheter – Brukes av blant annet Twitter, Digg, Disqus, Guardian, Stackoverflow, Flickr, Yahoo, Craigslist
  • Hvordan bruker man verktøyene?• Første forsøk – Oppretter en node-applikasjon (webserver) som gjør alle oppgavene • Håndterer alle forespørsler • Håndterer alle websocket-tilkoblinger • Gjør alle lagringer/hentinger fra database
  • Server 1 node app.js
  • Bryter opp i flere node-apper• En node-app tar seg av websocket- tilkoblinger vha Socket.io• En node-app tar seg av frontend forespørsler – Bilder, html, javascript, css, osv, osv
  • Server 1 node frontend.js node sockets.js
  • Server 1 node frontend.js node sockets.js Problemet:Får fortsatt bare 10000 tilkoblinger på EN socket-server app
  • Server 1 node frontend.js node sockets.js node sockets.js node sockets.js node sockets.js
  • Server 1 Socket-server 1 node frontend.js Socket-server 2 node sockets.js node sockets.js node sockets.js node sockets.js
  • Server 1 Socket-server 1 node frontend.js Socket-server 2 node sockets.js node sockets.js Problemet: node sockets.js Brukere som er tilkoblet til server 1 får ikke meldingene fra server 2,3 node sockets.js eller 4
  • Server 1 Socket-server 1 node frontend.js Socket-server 2 node sockets.js node sockets.js node sockets.js Problemet: Hvordan får brukere koblet til Socket-server 1 meldinger fra node sockets.js Socket-server 2 ? Redis
  • Server 1 node frontend.js node sockets.js node sockets.js node redis.js node sockets.js node sockets.js
  • Server 1 node frontend.js node sockets.js node sockets.js node redis.js node sockets.js node sockets.js Ca 40 000 websocket-tilkoblinger
  • Server frontend x 8 redisServer Server socket x 8 socket x 8 Ca 160 000 websocket-tilkoblinger
  • redis socketx8 socketx8 socketx8 socketx8 browsereCa 320 000 websocket-tilkoblinger
  • redis redis redis redis sockets sockets socketssockets sockets sockets sockets sockets sockets sockets sockets sockets Ca 1 000 000 websocket-tilkoblinger
  • Hovedpoenget• Websockets gir enorme muligheter for hva man kan lage• Node.js gjør det enkelt for utviklere å bygge websocket-tjenester som skalerer