gpt4 book ai didi

mongodb - 当 lambda 容器过期时,有没有好的方法来关闭 mongo 连接?

转载 作者:行者123 更新时间:2023-12-03 15:59:35 26 4
gpt4 key购买 nike

我正在使用 AWS-lambda 处理程序将 dynamoDB 流写入 mongoDB。我想在处理程序外部定义数据库连接,以便请求根据我们预期的吞吐量重用相同的连接。如果不正确处理连接,lambda 容器的问题将会过期。

有人知道这个问题有什么好的解决方案吗?本质上可以归结为“我想使用连接池而不超出连接限制”

最佳答案

当我遇到这个问题时,我找到了两种解决方案:

  1. “最佳实践”- 为每个 Lambda 调用创建/关闭 MongoDB 连接。如果您知道 Lambda 不会那么频繁地被调用,那么这是个好主意 => 您的 Lambda 容器会大声喊叫。
  2. 重用连接拉取 - 对我来说,当您知道 Lambda 会经常调用以保持(可能)容器温暖时,这是正常的。在这种情况下,您应该设置足够的 socketTimeoutMS 选项 (mongoose),以使其在 Lambda 调用之间保持不变。对我来说是:
 { 
reconnectTries: 30,
reconnectInterval: 500,
poolSize: 1,
socketTimeoutMS: 2000000,
keepAlive: true,
}

(超时后连接将自动关闭)

** 仅供引用:如果您使用 DynamoDB 流作为 lambda 触发器,任何预热可能都不适合您。

** 我已经在这里问过类似的问题: AWS Lambda (Node.js, v. 8.10) & Mongoose: MongoNetworkError connection to DB timed out

关于mongodb - 当 lambda 容器过期时,有没有好的方法来关闭 mongo 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56435634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com