gpt4 book ai didi

azure - 可扩展性 Azure Function/AWS Lambda

转载 作者:行者123 更新时间:2023-12-03 04:50:46 25 4
gpt4 key购买 nike

我正在考虑使用 Azure Function/AWS Lambda/Serverless 作为后端。它如何扩展到数百万个请求,代码必须打开数据库。我了解它不会重用连接?

例如,调用是这样的。

using (var db = new Database(..,))
{
// db calls
}

它如何横向扩展,是否高效?

最佳答案

你的问题有点不精确。我对 Azure 不太了解,但对于 AWS Lambda,它的扩展性很好。如果您有 100 万个并发请求,Lambda 将为每个请求创建一个实例。请注意,有 a default limit每个区域 1000 个并发执行,但可以通过支持请求来增加这些并发执行。

发出第一个请求后,容器可以被重复使用。有一个blog post解释它是如何工作的。虽然不建议您尝试在容器内缓冲连接。根据数据库和驱动程序,您的连接可能在卡住期间失效,也可能仍然有效。对于我使用的 Lambda 之一,缓冲效果非常好。您应该意识到,如果您没有正确关闭连接,这可能会导致数据库服务器泄漏,当然您应该在再次使用连接之前验证连接。

使用 Java,我将连接放入类的范围内,并在处理程序中检查连接是否已初始化,例如:

public class LambdaHandler implements RequestStreamHandler {
private Connection con = null;

public void handleRequest(InputStream inputStream,
OutputStream outputStream, Context context) {
if (con == null) {
con = getConnection(context);
} else {
con = validateConnection(context, con);
}
}

您也许可以使用您所使用的语言执行相同的操作。如果 Azure Functions 的工作方式与 AWS Lambda 非常相似,我不会感到惊讶,但您最好检查文档进行验证。

关于azure - 可扩展性 Azure Function/AWS Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45767073/

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