【发布时间】:2018-01-28 13:32:45
【问题描述】:
AWS Lambda 如何处理多个请求? 我想知道这里也是多线程模型吗?
如果我从 API 网关调用 Lambda。 API 在 10 秒内有 1000 个请求。将创建多少个容器以及多少个线程。
【问题讨论】:
-
您的具体用例是什么?你的问题太模糊了。
-
对于不同的用例,并发单位也不同(对于像 Kinesis 这样的基于流的侦听器,它的分片数量和非基于流的,它基于事件 - 创建的 DDB 项目数/S3 文档已推送/AWS API 调用。docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html。
-
如果我从 API 网关调用 Lambda。 API 在 10 秒内有 1000 个请求。将创建多少个容器以及多少个线程。
-
1000 个默认 IIRC 容器同时执行,每次执行都是单线程的。并行性位于容器级别的不同抽象层上(考虑不同的主机或基于 impl 的 docker 容器),而不是操作系统级别的线程。在客户端层,这个实现细节应该没有任何意义。当然,如果您在每个调用层都需要并行性,则必须以这种方式编写应用程序(例如,node js 运行时将允许您生成大量异步内容)。
标签: java aws-lambda