Node.js - 优劣

作者: Standstill | 来源:发表于2017-05-24 18:12 被阅读0次

    优势

    • 高并发,也即 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 第一步

    相关文章

      网友评论

        本文标题:Node.js - 优劣

        本文链接:https://www.haomeiwen.com/subject/cheoxxtx.html