AWS 无服务器并发
并发
并发对于理解无服务器应用程序如何扩展至关重要。
并发 是并发 Lambda 调用的数量。
它通过将请求速率乘以函数的平均持续时间来计算。
如果请求超过账户或 Lambda 函数并发限制,则会对调用请求进行节流。
以下因素会影响您的并发
- 事件源的调用模型
- AWS 服务限制
每个调用模型与 Lambda 服务的交互方式都不同。
AWS 无服务器并发视频
W3schools.com 与 Amazon Web Services 合作,为我们的学生提供数字培训内容。
并发的工作原理
如果请求超过并发限制,则会对其进行节流。
例如,如果您的函数运行 20 秒并每秒接收 50 个请求,则您的并发为 1000。
如果您的可用并发小于 1000,则请求将被节流。
对于异步事件源,失败或节流的请求将获得两次重试。
并发限制
对于同步事件源,没有内置重试。
像 Kinesis Data Streams 这样的流式事件源会计算分片。
对于 Lambda,限制是每个分片一个并发 Lambda 调用。
大多数流式服务将不断重试记录,直到处理完成或保留时间过期。
如果一个记录失败,则一批记录将被保留,直到保留期结束。
因此,添加代码来处理部分故障至关重要。
下表比较了 Lambda 执行模型和并发度量。
并发度量 | Lambda 执行模型 |
---|---|
请求速率 * 平均持续时间 | 同步 |
提升和迁移 | 异步 |
默认情况下,每个分片一个执行。使用并行化因子来为每个分片运行多个线程。 | 轮询,流 |
它需要超过 3 GB 的内存 | 每秒 5 次轮询,随着队列深度的增加而增加 |
相关阅读
管理 Lambda 函数的并发