Как справиться с влиянием Node.js на производительность HTTP-запроса - PullRequest
1 голос
/ 13 мая 2019

Я создаю простой 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, похоже, является узким местом.

Есть ли какой-нибудь способ улучшить производительность, которого мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...