首页 > 解决方案 > 如何处理 HTTP 请求对 Node.js 性能的影响

问题描述

我在 Node.js 中构建了一个简单的 API Gateway / 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 = 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 似乎成为瓶颈。

有什么方法可以提高我缺少的性能吗?

标签: node.jsperformanceexpressload

解决方案


推荐阅读