SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Node.js
Who am I?
• @龙mol_才不是小眼睛
Introduction
• Node.js是什么?
• Node.js的优势与特点是什么?
 – 什么是V8引擎
 – 什么是非阻塞模式
• Node.js能解决什么问题?
• Node.js实践?
Node.js是什么
• Node.JS 是资深 C 程序员 Ryan Dahl的作
  品,依据 Google 著名的开源 JavaScript
  引擎 V8 来进行二次开发的 Web I/O 服务
  器
• 轻量级WebServer
• 脱离了浏览器在后端运行的 Javascript代码
• 运行坏境、库
优势与特点
•   单进程(single-thread)
•   异步非阻塞(non-blocking)
•   事件驱动(event-based)
•   V8引擎

• 性能很好
• 第三方模块丰富
• 速度、灵活
V8引擎

• V8是一个由丹麦Google开
  发的开源JavaScript引
  擎,用于Google Chrome
  中。
• V8在执行之前将
  JavaScript编译成了机器
  码,而非字节码或是直译
  它,以此提升效能。并且
  使用了如内联缓存(inline
  caching)等方法来提高性
  能。
• 有了这些功能,
  JavaScript程序与V8引擎
  的速度媲美二进制编译。
非阻塞模式

• 在非阻塞模式下利用socket事件的消息机
  制,Server端与Client端之间的通信处于异
  步状态。
• 通常需要从 CSocket类派生一个新类,派生
  新类的目的是重载socket事件的消息函数,
  然后在socket事件的消息函数中添入合适的
  代码以完成Client端与Server端之间的通信。
• 与阻塞模式相比,非阻塞模式无需创建一
  个新线程。
性能
•   Python:Tornado
•   Go
•   Java:Netty
•   Nodejs
第三方模块
• 官方共收集列出1152个第三方模块!
 – 涵盖了Web、Database、XML、Web Sockets
   & Ajax、API clients、TCP/IP、CSS Enginess
   等等,几乎涉及网络开发中需要的功能模块。
 管理工具:npm
 管理着4427+模块,想用哪个用哪个,妈妈在也
   不用担心我没有模块用!
Node.js能解决什么问题
• Node 公开宣称的目标是 “旨在提供一种简
  单的构建可伸缩网络程序的方法 ”。
E.g.
• 在 Java™ 和 PHP 这类语言中,每个连接
  都会生成一个新线程,每个新线程可能需
  要 2 MB 的配套内存。在一个拥有 8 GB
  RAM 的系统上,理论上最大的并发连接数
  量是 4,000 个用户。随着您的客户群的增
  长,如果希望您的 Web 应用程序支持更多
  用户,那么,您必须添加更多服务器。当
  然,这会增加服务器成本、流量成本和人
  工成本等成本。
• 瓶颈是:服务器能够处理的并发连接的最
  大数量。
A
• 解决这个问题的方法是:更改连接到服务
  器的方式。每个连接发射一个在 Node 引擎
  的进程中运行的事件,而不是为每个连接
  生成一个新的 OS 线程(并为其分配一些
  配套内存)。Node 声称它绝不会死锁,因
  为它根本不允许使用锁,它不会直接阻塞
  I/O 调用。Node 还宣称,运行它的服务器
  能支持数万个并发连接。
Node.js实践
• 不受限制地访问文件和网络资源
• 前后端代码复用
• 解决跨域访问的问题
常规Web应用
实时性强的网络应用
实时性强的网络应用
Q&A
Thanks!

Más contenido relacionado

La actualidad más candente

twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC
 
雲端運算期末報告v2
雲端運算期末報告v2雲端運算期末報告v2
雲端運算期末報告v2岱霖 黎
 
雲端運算期末報告
雲端運算期末報告雲端運算期末報告
雲端運算期末報告岱霖 黎
 
Knowledge sharing
Knowledge sharingKnowledge sharing
Knowledge sharingPeng Wan
 
SITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with WebpackSITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with Webpack昱安 周
 
July.2011.w3ctech
July.2011.w3ctechJuly.2011.w3ctech
July.2011.w3ctechKai Cui
 
Rails girls session - Web Application
Rails girls session - Web ApplicationRails girls session - Web Application
Rails girls session - Web Applicationscott119
 
前端性能测试
前端性能测试前端性能测试
前端性能测试tbmallf2e
 
北京 Docker 容器大会分享
北京 Docker 容器大会分享北京 Docker 容器大会分享
北京 Docker 容器大会分享杨文 陈
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.comHo Kim
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇fangdeng
 
Rekoo social game 后端架构简介
Rekoo social game 后端架构简介Rekoo social game 后端架构简介
Rekoo social game 后端架构简介Binghong Liang
 
twMVC#43 YARP
twMVC#43 YARPtwMVC#43 YARP
twMVC#43 YARPtwMVC
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC
 
1. JavaScript 起步走
1. JavaScript 起步走1. JavaScript 起步走
1. JavaScript 起步走Justin Lin
 
如何针对业务做DB优化
如何针对业务做DB优化如何针对业务做DB优化
如何针对业务做DB优化Jinrong Ye
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇fangdeng
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨areyouok
 

La actualidad más candente (20)

twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 Log
 
雲端運算期末報告v2
雲端運算期末報告v2雲端運算期末報告v2
雲端運算期末報告v2
 
雲端運算期末報告
雲端運算期末報告雲端運算期末報告
雲端運算期末報告
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Knowledge sharing
Knowledge sharingKnowledge sharing
Knowledge sharing
 
SITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with WebpackSITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with Webpack
 
July.2011.w3ctech
July.2011.w3ctechJuly.2011.w3ctech
July.2011.w3ctech
 
Rails girls session - Web Application
Rails girls session - Web ApplicationRails girls session - Web Application
Rails girls session - Web Application
 
前端性能测试
前端性能测试前端性能测试
前端性能测试
 
北京 Docker 容器大会分享
北京 Docker 容器大会分享北京 Docker 容器大会分享
北京 Docker 容器大会分享
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇
 
Rekoo social game 后端架构简介
Rekoo social game 后端架构简介Rekoo social game 后端架构简介
Rekoo social game 后端架构简介
 
twMVC#43 YARP
twMVC#43 YARPtwMVC#43 YARP
twMVC#43 YARP
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1
 
1. JavaScript 起步走
1. JavaScript 起步走1. JavaScript 起步走
1. JavaScript 起步走
 
如何针对业务做DB优化
如何针对业务做DB优化如何针对业务做DB优化
如何针对业务做DB优化
 
Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 

Similar a Introduction to NodeJS

Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node jsXuefeng Zhang
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS國昭 張
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Eric Xiao
 
Yog Framework
Yog FrameworkYog Framework
Yog Frameworkfansekey
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
2013年京JS参会分享
2013年京JS参会分享2013年京JS参会分享
2013年京JS参会分享Jiyee Sheng
 
Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)Gelis Wu
 
Node js feat pegasus
Node js feat pegasusNode js feat pegasus
Node js feat pegasuscnfi
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具taobao.com
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具國昭 張
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】inwin stack
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构Cosey Lee
 

Similar a Introduction to NodeJS (20)

Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 
深入淺出Node.JS
深入淺出Node.JS深入淺出Node.JS
深入淺出Node.JS
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出
 
Meteor
MeteorMeteor
Meteor
 
Yog Framework
Yog FrameworkYog Framework
Yog Framework
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
2013年京JS参会分享
2013年京JS参会分享2013年京JS参会分享
2013年京JS参会分享
 
All about NodeJS
All about NodeJSAll about NodeJS
All about NodeJS
 
Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)
 
Node js feat pegasus
Node js feat pegasusNode js feat pegasus
Node js feat pegasus
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 

Introduction to NodeJS