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