Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

4,152

Node.js:初探

  • 2013-05-20
  • 暂无评论

Node.js的定义

  1. 是一套用来编写高性能网络服务器的JavaScript工具包
  2. 既是一个运行时环境,同时又是一个库

Node.js运行模式

  1. Node.js以单进程、单线程模式运行(这和Javascript的运行方式一致),没有多线程的资源占用和上下文切换,这意味着面对大规模的http请求,Node.js凭借事件驱动搞定一切

Node.js原理

  1. Node.js是基于Chrome's JavaScript runtime,也就是说,实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装,V8引擎本身使用了一些最新的编译技术。这使得用Javascript编写出来的代码与用C这类高级语言写出来的代码性能相差无几,却节省了开发成本。
  2. 编程模型是以javascript中使用的事件驱动模型为主体,通过对事件的封装成一系列的事件流来执行脚本,该模型既能提高性能又能降低开发的复杂度。采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。
  3. Node.js是异步编程分格,该特性主要源于事件驱动的设计模型,重要的优势在于,充分利用了系统资源,执行代码无须阻塞等待某种操作完成,有限的资源可以用于其他的任务。此类设计非常适合于后端的网络服务编程,Node.js的目标也在于此。在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人员可以提高资源的利用率,性能也会改善。

Nojs.使用范围

  1. Node.js主要设计用来处理大并发的请求,不适合处理过于复杂的逻辑处理,不然无法突显异步的性能特性。其并发能力和Nginx差不多,编写简单的代码即可实现一个http服务器。在移动领域或数据转发等领域非常适合。可以将它定位成可以编程的web服务器,我觉得会特别合适。


back up ↑

无觅相关文章插件,快速提升流量