AWS Lambda 与 Kestrel .NET Core 性能对比

AWS Lambda vs Kestrel .NET Core performance

我想使用 .NET Core 开发一个需要能够处理大量并发请求的 Web API。此外,WebAPI 需要连接到数据库。 Web API 将是内部的,不会在 Internet 上公开。

我正在考虑两种可能性:

我试图了解我需要注意哪些注意事项会影响每个解决方案的性能和成本。

I understand this questions more in terms “if AWS Lambda calls: response = Function(request) are thread-safe”.

The answer is yes.

It is because of one very simple reason. AWS Lambda does not allow for another thread to invoke the same lambda instance before the previous thread exits. And since multiple lambda instances of the same function do not share resources, this is not an issue also.

我理解并解释为:

这个理解对吗?

是的,每个 lambda 实例都是完全隔离的,并且 运行 作为一个线程。所以在你的情况下会有很多数据库连接。

您的体系结构的一个问题是您试图将可扩展资源(在本例中为 lambda)与不可扩展资源(在本例中为关系数据库)混合。我见过这样的设置以非常壮观的方式爆炸。

所以在你的情况下,我要么使用一些静态服务器 运行 Kestrel 或其他高性能网络服务器,要么用可以平滑扩展的东西替换关系数据库,比如 DynamoDB 或者 AWS极光