Anunciamos
Reutilizar conexões com Keep-alive no Node.js
Por padrão, o agente Node.js HTTP/HTTPS padrão cria uma nova conexão TCP para cada nova solicitação. Para evitar o custo de estabelecer uma nova conexão, você pode reutilizar uma conexão existente.
Para operações de curta duração, como consultas do DynamoDB, a sobrecarga de latência da configuração de uma conexão TCP pode ser maior do que a própria operação. Além disso, como a criptografia em repouso do DynamoDB é integrada com o AWS KMS, você pode experimentar latências do banco de dados tendo que restabelecer novas entradas de cache do AWS KMS para cada operação.
A maneira mais fácil de configurar o SDK para JavaScript para reutilizar conexões TCP é definir a variável de ambiente
AWS_NODEJS_CONNECTION_REUSE_ENABLED
como 1
. Esse recurso foi adicionado na versão 2.463.0
Como alternativa, você pode definir a propriedade keepAlive
de um agente HTTP ou HTTPS como true
, conforme exibido no exemplo a seguir.
const AWS = require('aws-sdk'); // http or https const http = require('http'); const agent = new http.Agent({ keepAlive: true, // Infinity is read as 50 sockets maxSockets: Infinity }); AWS.config.update({ httpOptions: { agent } });
O exemplo a seguir mostra como definir keepAlive
para apenas um cliente do DynamoDB:
const AWS = require('aws-sdk') // http or https const https = require('https'); const agent = new https.Agent({ keepAlive: true }); const dynamodb = new AWS.DynamoDB({ httpOptions: { agent } });
Se o keepAlive
estiver habilitado, você também poderá definir o atraso inicial para pacotes TCP Keep-alive com keepAliveMsecs
que, por padrão, é 1000 ms. Consulte a documentação do Node.js