Introduction to NodeJS
Upcoming SlideShare
Loading in...5
×
 

Introduction to NodeJS

on

  • 581 views

Introduction to NodeJS, 1st TechParty@UIC, Zelong Liang

Introduction to NodeJS, 1st TechParty@UIC, Zelong Liang

Statistics

Views

Total Views
581
Views on SlideShare
581
Embed Views
0

Actions

Likes
4
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

Introduction to NodeJS Introduction to NodeJS Presentation Transcript

  • Node.js
  • Who am I?• @龙mol_才不是小眼睛
  • Introduction• Node.js是什么?• Node.js的优势与特点是什么? – 什么是V8引擎 – 什么是非阻塞模式• Node.js能解决什么问题?• Node.js实践? View slide
  • Node.js是什么• Node.JS 是资深 C 程序员 Ryan Dahl的作 品,依据 Google 著名的开源 JavaScript 引擎 V8 来进行二次开发的 Web I/O 服务 器• 轻量级WebServer• 脱离了浏览器在后端运行的 Javascript代码• 运行坏境、库 View slide
  • 优势与特点• 单进程(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!