开源日志:关于nodejs

来源:互联网 发布:程序员屏幕设置 编辑:程序博客网 时间:2024/06/05 09:48

Nginx是一个效率很高的web服务器,为什么呢,因为它是由于现代的网络需求(高并发/高性能)下重新设计的一套系统,主要采用的特点是单进程非阻塞,因为高并发的情况下apache需要开启新进程来应对请求,导致占用的资源过多,让效率变低了。

其实,Nginx本身是支持静态内容和反向代理,在这两个方面做得很好;nginx支持动态内容如php等就需要第三方扩展支持了。而第三方扩展有两个问题:

  1. 非原生结构,效率肯定有所降低。
  2. 结构庞大,需要nginx+扩展。

Nodejs的主要目标是:一个轻量级的高并发高效率动态服务器。

Nodejs它其实也是使用了单进程(多进程是应对多核机器的扩展,结构上还是单进程和nginx一样,一个进程可以hold很多个连接),和非阻塞(这点使用了javascript的事件机制,给编程比较自然)。

Nodejs的架构特点是:

  1. 单进程高并发非阻塞,高性能服务器。
  2. 支持动态内容:解释执行js。
  3. 不取代php等:不适合复杂逻辑和一次进行大量数据处理。

很重要的一点是,它并非用来取代php之类的,它主要用在高并发的轻量级,譬如RESTful-API,作为高并发的后端系统的API。所以我觉得它的应用场景是:

  1. 小数据量,譬如系统的API。
  2. 短周期的请求。
  3. 高并发的动态内容。
  4. web集群:nginx作为反向代理,将请求分发到nodejs处理(一般是分发到apache处理)。

据说还能应用在:

  1. c++扩展,因为v8就是解释执行js的。
  2. 实时系统,因为它支持高并发的动态内容,所以比php等在做实时系统会合适。
  3. 海量数据:作为api可以接受海量的数据存储和提取。

随时更新。

原创粉丝点击