rrestjs v0.3版本只是改了一些小功能,昨天把v0.4版本开发出来和简单测试通过了,具体是将cluster模块的API全部重写了,然后增加了一个监控后台,以后这个监控后台可能会独立出来。上更新列表:
老规矩,项目地址:https://github.com/DoubleSpout/rrestjs
1、重新改写cluster模块的API
重写后的cluster模块只需要在config文件中进行配置即可开启或关闭,保持原有的各项功能不变,但是代码异常简洁:
a、可以开启多进程监听同一端口,增加程序运行性能和稳定性
b、可以开启多进程监听不同端口,增加程序运行的灵活性(之前我们公司的即时聊天项目就用到了这个功能,node.js监听不同端口,然后前面再放nginx做url的hash,保证同一个聊天室的用户在同一个node.js进程中。)
c、当开启cluster功能后,如果任一worker进程死亡,会由master自动唤醒这个worker,如果多个worker监听不同端口,则唤醒的这个worker还是会继续监听此前死掉的那个worker的端口。
d、当设置的worker数为1时,则自动进入开发模式,可以让开发node.js应用像PHP那样方便,不用每次写完代码去点一下重启。根据配置的文件夹目录发生任意改变(如保存、新建等)都将自动重启worker进程,而且rrestjs会自动去监听此文件夹目录下的子文件夹或孙子文件夹等等,所以这个被监听的目录不宜配置嵌套太多。当worker数大于1时,则将自动关闭此功能防止应用上线后的误操作。
e、将利用clusterplus模块自动同步一台服务器上多个进程的session(这个功能也只限于中小型网站,稍微大点最好还是用mongodb做session存储介质)
放上2个代码的小例子:
以下是开启 config.ClusterNum(假设4个) 个进程监听4个端口的代码:
1 | module.exports.conf = require('./config/config');//说明见git上的API |
以下是开启 config.ClusterNum 个进程监听1个端口的代码:(当 ClusterNum 为 1时,进入开发模式,根据配置的文件夹将自动重启node.js进程像PHP那样开发node.js应用)
1 | module.exports.conf = require('./config/config');//说明见git上的API |
2、rrestjs运行监控后台
rrestjsv0.4版本如果开启cluster则可以选择性的开启一个监控后台,可以很方便的查看应用的运行状态,还可以下载日志和重启worker进程,截个图吧:
目前这个监控后台功能还很弱,还有待加强呀