nodemon
pm2
https://blog.csdn.net/taokexia/article/details/105571341
https://gitee.com/geektime-geekbang/geek-nodejs/blob/master/chapter4/process/boot.js

cluster模块

nodejs默认是单进程的,但是对于多核的cpu来说, 单进程显然没有充分利用cpu;
所以,node中的cluster模块就是为了解决没有充分利用cpu的问题而产生的

  1. const cluster = require('cluster')
  2. const http = require('http')
  3. const os = require('os')
  4. const {length} = os.cpus(); // cpu个数
  5. if(cluster.isMaster) {
  6. console.log(`主进程 ${process.pid}正在进行`)
  7. for(let i =0; i< length; i++) {
  8. cluster.fork() // 衍生工作进程
  9. // 如果进程挂掉,5秒后,尝试重启
  10. cluster.on('exit', () => {
  11. setTimeOut(() => { cluster.fork() }, 5000)
  12. })
  13. }
  14. }
  15. // 如果当前不是主进程,那么就启动一个服务器
  16. http.createServer((req, res) => {
  17. res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'})
  18. res.write('hello world')
  19. res.end();
  20. }).listen(3030)
  21. console.log(`工作进程 ${process.pid}已经启动`)

image.png