nodejs多进程基本知识
1. 创建多进程的模块
1.1 child_process
1.2 cluster
2. 创建多进程的方法
2.1 child_process有4种方法:
1. spawn: 创建子进程,执行非node程序,执行结果以流形式返回
2. execFile: 创建子进程,执行非node程序,执行结果以回调返回
3. exec: 创建子进程,执行shell命令,执行结果以回调返回,可以直接执行一串shell命令
4. fork: 创建子进程,执行node程序,执行结果以流返回
2.2 cluster有1种方法:
cluster.fork:创建一个子进程
3. nodejs多进程模型
nodejs的多进程是master-work模式,一个主进程中,创建出多个子进程
4. 进程间消息传递
通过on('message')监听和send分发
5. 多个work监听同一个端口
nodejs中的多个work进程可以同时监听同一个端口。具体实现方式,child_process和cluster有区别。
5.1 child_process方式
child_process通常在master进程中创建socket或server,通过send方法将socket或server,发送到worker进程,在worker进程中同时监听一个端口
5.2 cluster方式
cluster通过cluster.isMaster和cluster.isWorker来区分主进程和worker进程,在worker进程中,可以直接启动server,来监听同一个端口
cluster主要是提供了对多个子进程的管理,子进程的创建、退出和重启,可以方便的进行。