Я создаю простой API-шлюз / BFF в Node.js, который прослушивает порт и вызывает две другие службы.
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, похоже, является узким местом.
Есть ли какой-нибудь способ улучшить производительность, которого мне не хватает?