0
Server-Side JavaScript                Developement                      Node.JS Quick Tour               数据平台与产品 - 清笃 <qin...
传统观念             JavaScript = 浏览器客户端11年4月2日星期六
Server-Side JavaScript11年4月2日星期六
先驱             Aptana Jaxer               Helma11年4月2日星期六
Jaxer             • Apache Httpd             • Mozilla SeaMonkey             • “世界第一”             • 前后端js代码的统一与互相调用       ...
适用场景             • web前端系统             • 对不支持js的浏览器提供js支持11年4月2日星期六
Helma             • RingoJS             • “12 years”             • Java             • MVC             • 应用服务器11年4月2日星期六
问题             •   no more servers             •   do more things             •   统一标准             •   技术生态圈11年4月2日星期六
Revelutions in 2009         •   CommonJS         •   JSConf         •   Node11年4月2日星期六
Nodes goal is to provide an easy             way to build scalable network             programs                           ...
发展历史             • 1/5/2009 Ryah Dahl 提出项目构想             • 2/15/2009 项目启动             • 5/31/2009 发布初始版本             • ......
社区与生态圈             • 目前在官方wiki上有近700个module             • 超过20位活跃的开发者             • 每天都在进步11年4月2日星期六
基础库             • libev (event loop)             • libeio (nonblocked posix, thread pool)             • v8 (javascript eng...
核心思想             • 非阻塞             • 单线程             • 事件驱动11年4月2日星期六
阻塞模式11年4月2日星期六
非阻塞模式11年4月2日星期六
单线程 - 优势             • 程序逻辑简单             • 系统资源占用低             • 无通信与锁开销带来高性能11年4月2日星期六
单线程 - 劣势             • 一个程序仅能在一个cpu上运行             • 一旦程序异常将导致整个进程崩溃11年4月2日星期六
解决方案 - Web Worker11年4月2日星期六
性能             • AMD Opteron 2200 单核, 4G RAM             • socket client 20,000+ qps             • socket server 17,000 qp...
一些限制             • SSL支持不够成熟             • Windows下还存在很多问题             • 1G heap限制(by v8)11年4月2日星期六
适用场景             • Web Socket & Web Comet             • 大并发负载中间层服务             • 简单的Spider11年4月2日星期六
Dig into the node11年4月2日星期六
安装11年4月2日星期六
Hello World!             Familiar & Simple11年4月2日星期六
HTTP服务11年4月2日星期六
String vs Buffer             String带来的问题             • 转码开销             • 内存开销             • memcopy             • 垃圾回收11年...
Node Buffer                     Buffer                     Codes                      Node                 Buffer         ...
String vs Buffer                 With String11年4月2日星期六
String vs Buffer                 With Buffer11年4月2日星期六
带来的性能改进               With String11年4月2日星期六
带来的性能改进               With Buffer11年4月2日星期六
Debug11年4月2日星期六
Debug in eclipse             • Eclipse debugger plugin for V8:              http://code.google.com/p/chromedevtools/      ...
UnitTest             • Expresso              https://github.com/visionmedia/expresso             • Nodeunit              h...
UnitTest11年4月2日星期六
UnitTest11年4月2日星期六
包管理             • PHP: pear             • Python: PyPI, setuptools             • Ruby: Gems             • Node:11年4月2日星期六
安装与使用11年4月2日星期六
Links             • http://www.commonjs.org/             • http://nodejs.org/             • http://howtonode.org/         ...
11年4月2日星期六
nodejs-kissy11年4月2日星期六
nodejs-kissy             • kissy框架的node移植版             • one for all             • https://github.com/kissyteam/nodejs-kis...
node-myfox             • mysql分布式集群的查询系统             • 对客户端透明             • 支持http/socket协议             • deamon-worker   ...
node-myfox                                                Master                      Sql                               ht...
CNodeJS.ORG为淘宝的工程师志愿发起的             Node.JS原创技术社区,致力于Node.JS的             技术研究和技术推广。11年4月2日星期六
CNodeJS             • blog              • http://cnodejs.org/blog/             • ask              • http://cnodejs.org/ask...
CNodeJS北京聚会               邀请你参加11年4月2日星期六
时间: 2011.4.16(周六)下午               地点: 北京betacafe11年4月2日星期六
11年4月2日星期六
Upcoming SlideShare
Loading in...5
×

Node js q-con

2,638

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,638
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Node js q-con"

  1. 1. Server-Side JavaScript Developement Node.JS Quick Tour 数据平台与产品 - 清笃 <qingdu@taobao.com> from http://cnodejs.org/11年4月2日星期六
  2. 2. 传统观念 JavaScript = 浏览器客户端11年4月2日星期六
  3. 3. Server-Side JavaScript11年4月2日星期六
  4. 4. 先驱 Aptana Jaxer Helma11年4月2日星期六
  5. 5. Jaxer • Apache Httpd • Mozilla SeaMonkey • “世界第一” • 前后端js代码的统一与互相调用 • 传统的服务器端脚本11年4月2日星期六
  6. 6. 适用场景 • web前端系统 • 对不支持js的浏览器提供js支持11年4月2日星期六
  7. 7. Helma • RingoJS • “12 years” • Java • MVC • 应用服务器11年4月2日星期六
  8. 8. 问题 • no more servers • do more things • 统一标准 • 技术生态圈11年4月2日星期六
  9. 9. Revelutions in 2009 • CommonJS • JSConf • Node11年4月2日星期六
  10. 10. Nodes goal is to provide an easy way to build scalable network programs -- nodejs.org11年4月2日星期六
  11. 11. 发展历史 • 1/5/2009 Ryah Dahl 提出项目构想 • 2/15/2009 项目启动 • 5/31/2009 发布初始版本 • ...... • 3/2/2011 v0.4.4 发布11年4月2日星期六
  12. 12. 社区与生态圈 • 目前在官方wiki上有近700个module • 超过20位活跃的开发者 • 每天都在进步11年4月2日星期六
  13. 13. 基础库 • libev (event loop) • libeio (nonblocked posix, thread pool) • v8 (javascript engine by google)11年4月2日星期六
  14. 14. 核心思想 • 非阻塞 • 单线程 • 事件驱动11年4月2日星期六
  15. 15. 阻塞模式11年4月2日星期六
  16. 16. 非阻塞模式11年4月2日星期六
  17. 17. 单线程 - 优势 • 程序逻辑简单 • 系统资源占用低 • 无通信与锁开销带来高性能11年4月2日星期六
  18. 18. 单线程 - 劣势 • 一个程序仅能在一个cpu上运行 • 一旦程序异常将导致整个进程崩溃11年4月2日星期六
  19. 19. 解决方案 - Web Worker11年4月2日星期六
  20. 20. 性能 • AMD Opteron 2200 单核, 4G RAM • socket client 20,000+ qps • socket server 17,000 qps • http server 4,400 qps • 内存消耗 30~40m • see more. <http://cnodejs.org/blog/?p=8>11年4月2日星期六
  21. 21. 一些限制 • SSL支持不够成熟 • Windows下还存在很多问题 • 1G heap限制(by v8)11年4月2日星期六
  22. 22. 适用场景 • Web Socket & Web Comet • 大并发负载中间层服务 • 简单的Spider11年4月2日星期六
  23. 23. Dig into the node11年4月2日星期六
  24. 24. 安装11年4月2日星期六
  25. 25. Hello World! Familiar & Simple11年4月2日星期六
  26. 26. HTTP服务11年4月2日星期六
  27. 27. String vs Buffer String带来的问题 • 转码开销 • 内存开销 • memcopy • 垃圾回收11年4月2日星期六
  28. 28. Node Buffer Buffer Codes Node Buffer 30 V8 Memory Engine11年4月2日星期六
  29. 29. String vs Buffer With String11年4月2日星期六
  30. 30. String vs Buffer With Buffer11年4月2日星期六
  31. 31. 带来的性能改进 With String11年4月2日星期六
  32. 32. 带来的性能改进 With Buffer11年4月2日星期六
  33. 33. Debug11年4月2日星期六
  34. 34. Debug in eclipse • Eclipse debugger plugin for V8: http://code.google.com/p/chromedevtools/ • http://bit.ly/eQl7iI11年4月2日星期六
  35. 35. UnitTest • Expresso https://github.com/visionmedia/expresso • Nodeunit https://github.com/caolan/nodeunit11年4月2日星期六
  36. 36. UnitTest11年4月2日星期六
  37. 37. UnitTest11年4月2日星期六
  38. 38. 包管理 • PHP: pear • Python: PyPI, setuptools • Ruby: Gems • Node:11年4月2日星期六
  39. 39. 安装与使用11年4月2日星期六
  40. 40. Links • http://www.commonjs.org/ • http://nodejs.org/ • http://howtonode.org/ • https://github.com/joyent/node/wiki • https://npmjs.org/11年4月2日星期六
  41. 41. 11年4月2日星期六
  42. 42. nodejs-kissy11年4月2日星期六
  43. 43. nodejs-kissy • kissy框架的node移植版 • one for all • https://github.com/kissyteam/nodejs-kissy11年4月2日星期六
  44. 44. node-myfox • mysql分布式集群的查询系统 • 对客户端透明 • 支持http/socket协议 • deamon-worker • unix-socket11年4月2日星期六
  45. 45. node-myfox Master Sql http / socket Query !"#$%&"#% $"( !"#$%&"#% $") Router Worker $"( Shard 1 Route Shard Shard 2 Route Info $") Info Data Shard N11年4月2日星期六
  46. 46. CNodeJS.ORG为淘宝的工程师志愿发起的 Node.JS原创技术社区,致力于Node.JS的 技术研究和技术推广。11年4月2日星期六
  47. 47. CNodeJS • blog • http://cnodejs.org/blog/ • ask • http://cnodejs.org/ask/11年4月2日星期六
  48. 48. CNodeJS北京聚会 邀请你参加11年4月2日星期六
  49. 49. 时间: 2011.4.16(周六)下午 地点: 北京betacafe11年4月2日星期六
  50. 50. 11年4月2日星期六
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×