Node.js的优缺点

特别说明:
Java、PHP也有办法实现并行请求(子线程),但NodeJS通过回调函(Callback)和异步机制会做得很自然。

优点:

  1. 高并发(最重要的优点,可以应付百万级并发)
  2. 适合I/O密集型应用

缺点:

  1. 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;
    解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;
  2. 只支持单核CPU,不能充分利用CPU
  3. 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃;原因:单进程,单线程
    解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
    (2)开多个进程监听同一个端口,使用cluster模块;
  4. 开源组件库质量参差不齐,更新快,向下不兼容
  5. Debug不方便,错误没有stack trace
  6. 传统程序员不适应回调处理,”回调地狱”
发布了182 篇原创文章 · 获赞 33 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42554191/article/details/104019751