node 的cluster

165 阅读1分钟
  1. cluster.js
// 集群 父进程里面可以开子进程
// 父进程和字进程可以共享一段代码

// 进程fork
const cluster = require('cluster')
const len = require('os').cpus().length
const path = require('path')

console.log(len)

cluster.setupMaster({
  exec: path.join(__dirname,'sub.js')
})

for(let i = 0; i < len; i++) {
  cluster.fork()
}
  1. sub.js
const http = require('http')

console.log(process.pid)

http
  .createServer((req, res) => {
    res.end('ok' + process.pid)
  })
  .listen(3000)

  1. client.js
let options = {
  hostname: 'localhost',
  port: 3000
}

const http = require('http')

for (let i = 0; i < 100; i++) {
  http.get(options, function(res) {
    res.on('data', function(data) {
      console.log(data.toString())
    })
  })
}