Tengo un backend de node.js que se conecta a un servicio externo a través de una solicitud HTTP. Estoy usando el HTTP node.js para administrar mis solicitudes. Mi pregunta es sobre cómo usar correctamente el agente http de Node.js con la opción keep-alive .
La documentación oficial explica que debemos crear un nuevo Agente y pasarlo a la solicitud. Esto es lo mismo para todos los ejemplos que encontré. Todos hacen algo como esto:
const http = require("http"); const agent = new http.Agent({ keepAlive: true }); const options = { host: 'myserver.com', port: 80, path: '/', method: 'GET', agent: agent, }; const req = http.request(options, (res) => { console.log("StatusCode: ", res.statusCode); }); Dado que mi agente ha activado keepAlive , debo crear solo una instancia del agente, guardarla en algún lugar (¿estático?) y reutilizarla cada vez que realice una solicitud a ese servicio. En otras palabras, solo debo llamar new http.Agent una vez cuando se crea mi backend y seguir usando la misma instancia; de lo contrario, se crearía un nuevo agente para cada solicitud. ¿Es esto correcto? ¿Hay alguna forma mejor de mantener la instancia del agente que no sea global o estática?
No sé si podré obtener una respuesta aquí o mejor como AWS directamente, pero digamos que mi backend es una función lambda de AWS, ¿cómo pueden compartir agentes entre invocaciones, ya que las lambdas son de corta duración, incluso? tiene sentido tener keepAlive para ese caso de uso?
Gracias por cualquier aclaración.