如何处理HTTP请求对Node.js性能的影响
我在Node.js中构建了一个简单的API网关/BFF,它监听一个端口并调用另外两个服务如何处理HTTP请求对Node.js性能的影响,node.js,performance,express,load,Node.js,Performance,Express,Load,我在Node.js中构建了一个简单的API网关/BFF,它监听一个端口并调用另外两个服务 const express = require('express') const axios = require('axios') const app = express() app.get('/', (request, reply) => { const promise1 = axios.get('http://localhost:5000/p') const promise2
const express = require('express')
const axios = require('axios')
const app = express()
app.get('/', (request, reply) => {
const promise1 = axios.get('http://localhost:5000/p')
const promise2 = axios.get('http://localhost:5000/s')
return Promise.all([promise1, promise2]).then(([res1, res2]) => {
reply.send('done')
})
})
app.listen(4000, () => {
console.info(`server listening`)
})
该端点应该处理中等负载(例如每秒500个请求)
在我的本地机器上,使用负载测试工具,这个端点每秒不能服务超过100个请求,而如果我不执行任何HTTP请求,只返回一个简单的JSON,则可以服务的请求大约为10000个。CPU似乎是瓶颈
有没有什么方法可以提高我所缺少的性能 实际上,我开始考虑的不仅仅是CPU,问题是可用的套接字。我注意到设置
httpAgent=newhttp.Agent({keepAlive:true})代码>的性能提高了2倍。然而,对于我所期望的,它仍然太低了。实际上,我开始考虑的不仅仅是CPU,问题是可用的套接字。我注意到设置httpAgent=newhttp.Agent({keepAlive:true})代码>的性能提高了2倍。然而,它仍然太低了,超出了我的预期