内容概括
-
进程重启
-
处理HTTP服务
-
cluster模块
-
负载均衡
1.进程重启
worker进程可能因为某些异常情况而退出,为了提高集群的稳定性,master进程需要监听子进程的存活状态。
当子进程退出之后,master进程要及时重启新的子进程。在Node中,子进程退出时,会在父进程中触发exit事件。
父进程只需通过监听该事件便可知道子进程是否退出,并在退出的时候做出相应的处理。
以下是master进程代码,文件名为master.js
const childProcess = require('child_process')
const net = require('net')
const cpuNum = require('os').cpus().length - 1
// 创建工作进程
let workers = []
let cur = 0
for (let i = 0; i < cpuNum; ++i) {
workers.push(childProcess.fork('./worker.js'))
console.log('Create worker-' + workers[i].pid)
}
// 创建TCP服务器
const server = net.createServer()
// 由于master进程也会监听端口。因此需要对请求做出处理
server.on('connection', (sock