gpt4 book ai didi

aws-lambda - AWS lambda 和数据库

转载 作者:行者123 更新时间:2023-12-04 00:59:22 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

2年前关闭。




Improve this question




我一直从理论上了解到,创建与数据库的新连接是一项代价高昂的操作。所以我们应该保持打开连接池并将其用于数据库操作。

在考虑 AWS lambda 时。假设 lambda 函数要对 db 进行操作,那么我们需要创建一个到 db 的连接。操作后需要关闭db。如果同时执行 100 个 lambda 函数,则正在执行 100 个 db 连接打开/关闭。这在理论上是不好的模式。

如果是这样,那么在涉及数据库操作时使用 AWS lambda 是否不合适?

最佳答案

为什么需要DB连接已关闭,未在 Lambda 中重用它功能?

每个Lambda函数运行意味着一个 Container它们在运行后会存活一段时间(几个 10 分钟,如果你连续调用它,它会保持存活)。

活着意味着每个Lambda函数在运行后保留内存区域,以便它可以重用它们。

例如,如果您在 Lambda 中定义了一个全局变量功能如下。
(虽然是python代码,但我想你可以理解,因为它足够简单)

variable = 10

def lambda_function(event, context):
global variable
print(variable)
variable += 1

如果 Lambda函数每 1 秒调用一次,它将打印如下。
10
11
12
13
14
.
.
.

如您所见,每个 Lambda调用的函数使用相同的全局变量。
如果全局变量是DB连接怎么办?您可以重用它们而不是在每次 lambda 调用时重新打开连接。

但是,如您所说,如果 100 Lambda函数同时执行,每个 Lambda 将打开 100 个连接并发意味着不同 Containers分别具有不同的内存区域。

但最后,100 个连接将被重用于连续 100 个同时执行。

- - - - - 编辑 - - - - -

我同意 @Arun的评论。当流量稳定并逐渐增加和减少时,我的答案将很有用,以便连接可以被充分重用并被服务器端的保持事件关闭。流量的急剧增加和减少可能会浪费 DB 连接没有正确关闭。

---------- 编辑 ---------- 2019-12-17

AWS 宣布新功能 RDS proxy虽然是预览版。
如果您通过 RDS proxy 连接 RDS ,它将为您管理数据库连接池(Lambda <-> RDS)。

有关详细信息,请参阅此 link

关于aws-lambda - AWS lambda 和数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53974548/

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