【问题标题】:Does my DynamoDb connection Close every time?我的 DynamoDb 连接每次都会关闭吗?
【发布时间】:2021-03-13 03:48:47
【问题描述】:

我试图了解每次执行命令时我的 Dynamodb 连接是否关闭

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

}

考虑到上面的示例,每次我调用 dboperation1 时都会先建立到 DynamoDb 的连接。

如果是这样,我怎样才能使一些连接保持打开状态,以便我可以轻松地使用它们来查询数据库,从而避免设置连接所花费的额外时间?基本上是试图避免发生的初始握手。

【问题讨论】:

    标签: node.js amazon-web-services amazon-dynamodb


    【解决方案1】:

    来自文档:

    默认情况下,默认 Node.js HTTP/HTTPS 代理会创建一个新的 TCP 每个新请求的连接。为了避免建立一个 新连接,您可以重用现有连接。

    所有 AWS 开发工具包调用都使用 http(s) 连接。我们只需要构建一个keepAlive Agent 并在初始化客户端时将其传递给httpOptions。 这适用于所有其他 AWS 开发工具包客户端,而不仅仅是 DynamoDB。

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

    Here 是文档

    下面是一个例子

    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,
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2017-11-05
      • 2015-04-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多