我最近尝试在不使用PM2的情况下集群我的nodejs应用程序。 然而,事实证明这一点有点单调乏味,因为在使用集群模块时没有“黄金标准”来管理更大的代码库。
例如,许多教程提供了有关如何实现集群模块(示例简化)的以下结构:
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
// ALL code goes HERE?
http.createServer().listen(8000);
}
如果我想定义快速路由或设置socket.io服务器(这可能是数百行),例如,我不应该将所有这些都放在else
语句中(其中{ {1}}是cluster.isWorker
),我应该吗?