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 函式的併發