Node.js 简介:
Node.js 是谷歌 V8 引擎、libuv平台抽象层 以及主体使用 Javscript 编写的核心库三者集合的一个包装外壳,使用事件驱动来实现异步开发的优秀解决方案。
Node.js 的主要思路:
使用非阻塞的,事件驱动的 I/O 操作来保持在处理跨平台 数据密集型实时应用时的轻巧高效。
Node.js 原理:
传统的网络服务技术,是每个新增一个连接(请求)便生成一个新的线程,这个新的线程会占用系统内存,最终会占掉所有的可用内存。而 Node.js 仅仅只运行在一个单线程中,使用非阻塞的异步 I/O 调用,所有连接都由该线程处理,在 libuv 的加分下,可以允许其支持数万并发连接(全部挂在该线程的事件循环中)。
Node.js 特点:
1. 它是一个Javascript运行环境
2. 高性能,依赖于Chrome V8引擎进行代码解释
3. 事件驱动
4. 非阻塞I/O
5. 轻量、可伸缩,适于实时数据交互应用
6. 单进程,单线程,占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低
7. 线程安全,没有加锁、解锁、死锁这些问题
Node.js 与JavaScript 关系:
Node.js 适应场景:
1、单页面应用
2、系统监控
3、聊天应用
4、I/O 密集应用
5、实时交互应用 (对象数据接口)
6、工具类
Node.js 不合适的地方使用:
1、使用关系型数据库的服务端 WEB 应用
2、繁重的服务端的计算和处理
参考文章:
http://blog.jobbole.com/53736/
http://blog.csdn.net/xiaemperor/article/details/38234979