所以我正在测试我的api服务器。我想模拟如果1000个用户同时调用同一个路由会怎么样。为了验证这一点,我做了以下几点:
const fetch = require('node-fetch');
router.get('/test', async (req, res) => {
let all = [];
for (let i = 0; i < 1000; i++) {
const a = fetch(`http://localhost:3001/custom/a`).then(res => res.json())
all.push(a)
}
all = await Promise.all(all);
res.json('finished')
})
我正在测试的路线是:
router.get('/a', async (req, res) => {
const video = await Video.find().limit(1).exec();
res.json(video)
})
所以当我手动点击route(通过邮递员或浏览器)时,一次一个请求,响应时间大约是60毫秒。
但当我启动1000个路由时,每个响应都像是在等待上一个路由完成。看看这个日志
PASTEBIN
所以我想知道,我做错了什么?这里是谁在封锁?是Mongoose和Database(我尝试将池大小增加到1000,还是相同的),还是我误解了节点是如何工作的?