cluster 模块允许多次启动同一个应用程序。

当不同的实例具有相同的执行流并且不依赖于彼此时,期望聚类。在这种情况下,你有一个可以启动分叉和分叉(或子代)的主机。孩子们独立工作,拥有 Ram 和 Event Loop 的一个空间。

设置群集对网站/ API 有益。任何线程都可以为任何客户服务,因为它不依赖于其他线程。数据库(如 Redis)将用于共享 Cookie,因为变量无法共享! 线程之间。

// runs in each instance
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;

console.log('I am always called');

if (cluster.isMaster) {
    // runs only once (within the master);
    console.log('I am the master, launching workers!');
    for(var i = 0; i < numCPUs; i++) cluster.fork();

} else {
    // runs in each fork
    console.log('I am a fork!');
  
    // here one could start, as an example, a web server
  
}

console.log('I am always called as well');