为什么nodejs不适合大型项目

Z, ZLW 5292

node.js不适合大型项目的原因有:1、开发效率降低;2、IE兼容性问题大;3、代码排查难度大。虽然node.js是前端开发中开发框架的一大优选,但因为node.js同时又是单页面应用,所以如果没有一定量的开发经验,不要轻易把大项目迁移上去,否则将面临项目失败的风险。

1、开发效率降低

开发效率降低,Html是非常成熟稳定的技术,在纯前端开发中依然离不开它,然而iframe与windows对象在node.js中将失灵。这样对于做业务窗口页面将变得因难许多,提取通用页面也变得很麻烦。对于项目型系统来说,业务的交互有时甚至会有三层的窗口,这时你想在node.js弹出三层窗口将变得很麻烦,做不到使用JS来通用调用这些窗口。

同时对于习惯使用Url来传递参数的开发人员来说,在这里也将失去作用。

2、IE兼容性问题大

非常糟糕的IE兼容性问题,如果你的项目是国内的政企应用系统,那基本上在IE运行下将变慢很多,非常吃浏览器内存。

3、代码排查难度大

出错后代码排查难度加大,所心在大项目中使用将会把简单的问题复杂化。运维成本直线上升。

拓展阅读

node.js简介

Node.js是运行于服务端的JavaScript解释器,发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。
Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。

node.js的优劣势:

优势

  • 采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学,很多前端设计人员可以很快上手做后端设计。
  • Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。
  • Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

缺点

  • 可靠性低。
  • 单进程,单线程,只支持单核CPU,不能充分的利用多核CPU服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

当然对于这些缺点也有很多解决办法:

  • 开启多个进程,每个进程绑定不同的端口,用反向代理服务器如 Nginx 做负载均衡,好处是我们可以借助强大的 Nginx 做一些过滤检查之类的操作,同时能够实现比较好的均衡策略,但坏处也是显而易见——我们引入了一个间接层。
  • 多进程绑定在同一个端口侦听。在Node.js中,提供了进程间发送“文件句柄” 的功能。
  • 一个进程负责监听、接收连接,然后把接收到的连接平均发送到子进程中去处理。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部