node.js - 如何处理 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 似乎成为瓶颈。
有什么方法可以提高我缺少的性能吗?
解决方案
推荐阅读
- python - SciPy 差分进化:即使工人 = -1 也不能在多核上运行
- amazon-web-services - 如何将根域重定向到 AWS route53 中的子域?
- oracle - 带有 LDAP 的 Oracle JDBC-URL 到 OLE DB 连接字符串 - 如何?
- python - 在类变量python中使用类方法
- react-native-ios - Expo SDK 38 错误:“AR 模块已从 expo 包中删除”,即使没有使用 AR 模块
- javascript - JavaScript 文本未显示
- flutter - Flutter中如何处理单屏60多个TextFormField?
- flutter - Flutter 是否可以在不使用 Cupertino 小部件的情况下在 iOS App Store 上发布我的应用程序?
- phpstorm - 如何在 PHPDoc 中引用方法
- r - 在R中按组提取最小值/最大值