Node 集群部署
进程间通信和 WebWorker 类似,使用主从模式来处理,主进程负责分配和调度任务,工作进程负责处理任务。
master.js 文件
const fork = require('child_process').fork; const cpus = require('os').cpus(); const http = require('http') const list = [] for (let i = 0; i < cpus.length; i++) { const child = fork('./worker.js') list.push(child) } const server = http.createServer((req, res) => { res.end('handle by parent') }) server.listen(8080, () => { list.forEach(child => { child.send('server', server) }) server.close() })
worker.js 文件
const http = require('http') const process = require('process') const server = http.createServer( (req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain', }) res.end(`handle by child ${process.pid}`) } ) process.on('message', (m, tcp) => { if (m === 'server') { // 建立新的 TCP 流时会触发此事件 tcp.on('connection', socket => { // 让工作进程去处理连接请求 server.emit('connection', socket) }) } })
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: 单机上搭建 Node 集群
下一篇: 不要相信一个熬夜的人说的每一句话
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论