node.js - 端点级别的 Node.js 集群负载平衡
问题描述
我使用集群并且有 2 个节点正在运行。每个节点都有一个 API 执行一项任务大约 5-6 秒。
例如
在 cluster.js 中
const cluster = require("cluster");
if (cluster.isMaster) {
for (let i = 0; i < 2; i++) {
cluster.fork();
}
} else {
require("./server");
}
在 server.js 中
const express = require("express");
const app = express();
const port = 8080;
app.get("/", async (req, res) => {
await sleep(5000);
res.send('handled by process: ' + process.pid);
});
async function sleep (ms){
if (ms <= 0) return;
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
};
app.listen(port, () => console.log(`port: ${port}`));
如果我向 API 请求。第一个节点收到请求并处理大约 5-6 秒。在它完成流程和响应之前,我将第二个请求发送到 API。但是请求被发送到第一个节点,而不是第二个节点。如何实现节点集群来做到这一点?
解决方案
推荐阅读
- html - 基金会电子邮件 --- 雷鸟 rwd
- python - GPIOZero Pi 报警系统:需要替代时间延迟
- html - 图片链接顶部的链接
- dax - 角色表过滤器表达式中的多个值的 DAX
- jdbc - JMeter 变量数组到文本文件
- java - 使用缓存但持续时间不同的 PostgreSQL 相同计划?
- node.js - 在 Ubuntu 上简单安装当前版本的 Wekan?
- c++ - 不能使用 ostream 打印,但可以使用 cout 打印?
- android - Recyclerview 在我退出并重新进入活动或按下返回按钮后加载
- c# - PVS Studio 抑制整个 C# 文件的单一警告