Node.js 中的负载均衡

JavaScript020

Node.js 中的负载均衡,第1张

实现原理 :在服务器后台处理高并发任务时,我们通常会用到负载均衡策略,来提升系统性能。在 Node.js 中同样可以使用负载均衡的方式来处理高并发,具体实现过程是基于系统的抢占模式。

存在的问题 :此时可能会存在一定的问题,因为抢占模式其实是取决于 CPU 的状态(忙碌或者清闲),如果存在一个 I/O 密集但 CPU 清闲的进程,那就会导致该进程被抢占后迟迟不被释放。

如何解决 :针对于这种情况,Node.js 也有自己的解决办法,那就是采用 Cluster 的轮调机制( Round-Robin )。如果采用了 Cluster 模块来管理应用集群,那么会默认开启轮调机制。如果想关闭的话,可以通过配置环境变量 NODE_CLUSTER_SCHED_POLICY 来设置,开启为 rr,关闭为 none 。

大前端趋势越来越有趣,以脚本编辑为主流的前端构建方式(JavaScript,TypeScript)已经在前端阵营中从pc端,进军到Native的混合开发(ReactNative,Weex),现在Google又推出了Pwa能够通过JS脚本编写直接构建成为原生的Native项目的工程框架,并且目前微软,苹果也都发表声明将支持Pwa的使用。

使得脚本语言有了越来越多的用武之地,更多的渲染手段,更多的打包方式,让前端的开发能够有很多灵活的方式进行项目组装,模块的重用。webpack,gulp的灵活使用往往能使得一个工程支持多个项目,而且还能同样保证项目的结构整洁清晰。

这些项目很多都会部署在nodejs 服务上,那么进入主题如何能使得nodejs 服务能够更稳定的运行,由于nodejs是单线程服务,在运行过程中首先是进程的优化使用。然后就是通过nodejs对服务器性能的监听,os 模块提供了一些操作系统相关的实用方法。

通过os模块判断服务器性能,当服务器性能不足时,

nodejs功能强大且多样,不只是可以实现服务器端与客户端的实时通讯,另一个功能是用来执行shell命令