node的出现使得前后端可以使用同一种语言,统一模型的梦想得以实现
nodejs 解决了JavaScript的一些痛点
1、更好的组织代码,增加复用性。在es6中也得到了很大的提升
2、处理文件与数据库
3、与互联网进行沟通,以标准化的格式处理请求发送回答
nodejs的优点
1、采用事件驱动,异步编程,为网络服务而设计
2、Nodejs非阻塞模式的IO处理给nodejs带来相对系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源中的中间层服务
3、Nodejs高效轻量,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案
nodejs的缺点
1、可靠性低
2、单进程,只支持单核CPU 不能充分利用多核CPU服务器一旦这个进程崩掉了,整个web服务就垮掉了
不过这些缺点是可以代码的健壮来弥补的
目前Nodejs的网络服务器有以下几种支持多进程的方式
1、开启多个进程,每个进程绑定不同的端口,用反向代理服务器如 nginx 做负载均衡,好处是我们可以借助强大的nginx做一些过滤检查的事情
同时可以实现比较好的均衡策略,唯一的不好使我们引入了一个间接层
2、多进程绑定在同一个端口监听。在nodejs中提供了进程间发送“文件句柄”的功能
3、一个进程负责监听、接收链接,然后把接收到的链接平均发到子进程中去处理