Мое соединение с DynamoDb закрывается каждый раз?

Я пытаюсь понять, закрывается ли мое соединение Dynamodb каждый раз, когда я выполняю команду

      const dboperation1 = async(param) =>{
    const docClient = new AWS.DynamoDB.DocumentClient();
    const result = await docClient.query(params).promise();
    return result

}

Если рассматривать приведенный выше пример, каждый раз, когда я вызываю dboperation1, сначала устанавливается соединение с DynamoDb.

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

1 ответ

Решение

Из документов:

По умолчанию агент HTTP / HTTPS Node.js по умолчанию создает новое TCP-соединение для каждого нового запроса. Чтобы избежать затрат на установку нового соединения, вы можете повторно использовать существующее соединение.

Все вызовы AWS SDK используют http-соединения. нам просто нужно создать агент keepAlive и передать его httpOptions при инициализации клиента. Это применимо для всех других клиентов AWS SDK, а не только для DynamoDB.

      const agent = new https.Agent({
  keepAlive: true
});

Вот документация

Ниже приведен пример

      import { Agent as httpsAgent } from 'https';
import AWS from 'aws-sdk';
var docClient = new DB.DocumentClient({
    httpOptions: {
        connectTimeout: 4000,
        agent: new httpsAgent({ keepAlive: true }),
    },
    logger: console,
    apiVersion: '2012-08-10',
    convertEmptyValues: true,
});
Другие вопросы по тегам