azure - 可扩展性 Azure Function/AWS Lambda

标签 azure amazon-web-services aws-lambda scalability azure-functions

我正在考虑使用 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/

相关文章:

Azure Front Door Designer - 更新自定义域 - 新 SSL

amazon-web-services - 让Lambda通过VPC访问EC2端口

amazon-web-services - 超时后自动删除CloudFormation Stack

azure - 无法在 VS 2015 RC 中重复 F5 部署 OWIN Service Fabric 应用程序

用于从 PDF 中读取文本的 Azure OCR 或其他 Azure 认知功能

c# - 是否可以通过编程方式扩展 Azure 应用服务

amazon-web-services - 在 Beanstalk nodejs 环境中增加 nginx 的 worker_connections

amazon-web-services - 无法在 AWS Lambda 中使用 OpenCV-Python

amazon-web-services - 如何为AWS Lambda创建和压缩Docker容器

node.js - 无服务器 Typescript 插件将我所有的 lambda 函数打包到一个 zip 存档中