Node.js - 优劣

优势

  • 高并发,也即 I/O 密集
    • 单进程使得程序不会额外分配资源给其他进程,线程管理本就很复杂,另外CPU在处理任务的时候也避免了切换上下文/线程带来的消耗,具体可参考:http://iamzhongyong.iteye.com/blog/1895728
  • 非阻塞IO
    • 开发中可能遇到硬盘,数据库,网络请求等阻塞,使用异步处理能使程序更流畅。
  • 适合前端JS人员开发后台
    • NodeJS虽然跟JS完全不是一码事,但是设计者将语法兼容JS,故开发NodeJS将会跟开发JS的难度差不多,另外NodeJS用的虚拟机(V8)可以使用最新的ES6,因为部署在服务器端,不需要浏览器支持。
  • 轻量级
    • Node进程消耗的资源更少,在同种功能下的Tomcat跟Node,Node占用的内存更少。
  • 与NoSQL结合
    • 像Redis , MongoDB这种NoSQL与NodeJS结合开发,使应用更快捷,更轻量级,MongoDB的管理和查询语言都是JavaScript。

劣势

  • 不适合CPU密集型应用
    • 单线程导致只能使用单核,导致CPU的处理能力更弱。
  • 可靠性低
    • 一个线程导致如果程序某个环节崩溃,整个系统都会崩溃。
  • 开源组件库质量参差不齐,更新快,向下不兼容。
  • Debug不方便,错误没有stack trace。

适用场景

  • RESTful API
  • 高并发、I/O密集、少量业务逻辑

####### 参考自:《Node.js实战》- Mike Cantlon 等著

上一篇 下一篇
- Node.js 第一步
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这是一个移动端工程师涉足前端和后端开发的学习笔记,如有错误或理解不到位的地方,万望指正。 Node.js 是什么 ...
    单纯的土豆阅读 1,357评论 2 17
  • 使用了这么久的Node.js,之前只是知道它怎么使用,并没有去深入的了解它的机制,那么今天就来聊聊它的使用机制优缺...
    小m_up阅读 1,050评论 2 8
  • # 模块机制 node采用模块化结构,按照CommonJS规范定义和使用模块,模块与文件是一一对应关系,即加载一个...
    RichRand阅读 2,720评论 0 3
  • 域名就是网址,就是个人网站或企事业单位和公司在因特网上的名称。 例如,yesky.com就是我们网站的域名。 域名...
    必须这么打阅读 150评论 0 0
  • 你已经走了十年 这十年 说长不长 你还在我的脑海里面 说短不短 坟头上的野草死去 又新生 我看见一只血红色的蜻蜓 ...
    难以接近阅读 247评论 0 3

友情链接更多精彩内容