1.1.63 • Published 4 years ago
grace-server v1.1.63
grace-server
通过cluster集群,加强node服务器的稳定性
为什么(WHY)
由于node服务器上线有损,所以使用cluster实现无损上线。
原理(HOW)
使用(HOW TO USE)
- 安装
npm i -g grace-server
- 使用
1、首先进行配置
新建grace-config.js
配置文件,格式如下:
module.exports = {
entry: './index.js', // server入口文件
workerNum: 2, // cluster集群worker数量
graceReloadOnFileChange: true, // 监听文件修改时,进行平滑重启服务器
reloadDelay: 1500, // worker重启延时,注意,在产品模式下,延时尽量大于1.5s,如果延时过小,会发生worker重启交叉,开发模式可以将性能考虑优先,发生重启交叉的情况不会有很大影响,所以可以设置小于1.5s。
workerTimeOut: 5000 // worker强制退出timeOut
};
2、server端入口app.js需要将server对象暴露出来
// app.js
var server = http.createServer((req, res) => {
response.end('hello');
});
server.listen(8080);
// 将server对象导出
module.exports = server;
3、当想要上线时:
将server代码替换
使用kill
进行平滑重启kill pid
如果pid不清楚的话
可以使用ps
进行查询ps -A | grep grace
- 查看版本
grace -v
- 运行
grace
目录
|-- workPlace
|-- .gitignore
|-- README.md
|-- index.js
|-- package-lock.json
|-- package.json
|-- tree.md
|-- img
| |-- entry.jpg
| |-- how.png
| |-- how2.png
|-- src
|-- command
| |-- argReader.js
| |-- index.js
| |-- showConfig.js
| |-- socket.js
| |-- start.js
| |-- stop.js
|-- grace
| |-- index.js
| |-- master.js
| |-- readConfig.js
| |-- singnal.js
| |-- socket.js
| |-- task.js
| |-- work.js
|-- util
|-- log.js
|-- util.js
版本更新
- v1.1.70
1、使用spawn添加后台常驻能力
2、使用socket添加通信能力
3、添加进程守护monitor - v1.1.62
上传原理图 - v1.1.61
优化目录结构 - v1.1.6
优化目录结构 完善package.json信息 - v1.1.5
新增graceReloadOnFileChange
通过监听本地文件,在文件修改时,进行平滑重启 新增reloadDelay
设置worker重启延时 新增workerTimeOut
设置worker重启时强制离线timeOut - v1.1.4
优化目录结构,将task任务管理进行抽象。 - v1.1.0
调整文件目录 - v1.0.0
新增grace
命令。
grace index.js
使用集群方式来启动server服务。