node.js - 在 express api 中使用节点集群总是有益的吗?
问题描述
function declareCluster() {
if (cluster.isMaster) {
createWorkers();
handleWorkerExit();
return;
}
app.listen(environment.port, () => {
console.log(new Date(), `Listening at port ${environment.PORT}`);
});
function createWorkers() {
for (let index = 0; index < cpuCount; index++) {
cluster.fork();
}
cluster.on('online', (worker) => {
console.log(new Date(), 'Worker ' + worker.process.pid + ' is online');
});
}
function handleWorkerExit() {
cluster.on('exit', (worker, code, signal) => {
console.log(new Date(), 'Worker ' + worker.process.pid + ' died with code: ' + code + ', and signal: ' + signal);
console.log(new Date(), 'Starting a new worker');
cluster.fork();
});
}
}
因此,我们可以使用集群模块创建负载均衡器,让每个工作人员使用此代码处理 API 请求。这是所有快递api都应该有的某种样板吗?我的意思是,使用所有 cpu 核心来平衡请求总是好的,对吗?在哪些情况下我们不应该这样做?
解决方案
推荐阅读
- date - Laravel 5 中的日期验证和日期数据库插入
- vue.js - Nuxt.js 存储,将操作发送到其他存储
- macos - 使用 ipad 连接到 mac 上的 localhost
- javascript - 一页中有多个 Highcharts - 仅显示一个图表
- python - jupyter notebook 显示带有 Python 和 virtualenv 的内核错误
- python - 寻找内存有效的外积和
- python - 在我使用 Tor 时请求保留我的 IP 地址
- fluentd - Fluentbit 转发重试限制和 HA
- reactjs - 相邻的 JSX 元素必须包含在封闭标记中
- javascript - 当使用 Javascript 连续执行多次点击时,为什么直接从控制台执行批量操作而不是一次操作一次?