Мое соединение с 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,
});