AWS SQS 的無伺服器擴充套件考慮因素
AWS SQS 擴充套件考量
SQS 佇列緩衝 API Gateway 查詢,實現非同步處理。
作為 Lambda 事件源,AWS SQS 會為您控制輪詢佇列。
但您仍然可以控制其他與效能相關的設定。
AWS SQS 擴充套件考量影片
W3schools.com 與 Amazon Web Services 合作,為我們的學生提供數字培訓內容。
如何運作
Lambda 自動使用五個並行程序來清空佇列。
這五個併發程序表示 Lambda 會呼叫您的 Lambda 函式五次。
為防止 Lambda 函式被限流,請確保預留併發數至少為五。
如果 Lambda 服務檢測到佇列大小增加,它會增加批處理大小。
這意味著它將併發呼叫更多 Lambda 函式。
Lambda 將繼續每分鐘增加程序數,直到佇列減慢或達到容量。
除非另有說明,最大併發數為 1000。
Lambda 故障
Lambda 服務將在 Lambda 函數出現故障時減少輪詢佇列的程序數。
故障將被放入死信佇列,並從您的 SQS 佇列中刪除。
如果批處理大小設定得太大,您的 Lambda 函式可能會超時。
如果這種情況頻繁發生,Lambda 會減慢輪詢速度,導致佇列阻塞。
未處理的訊息
如果在 Lambda 函式處理它們之前可見性超時到期,未處理的訊息將變得可見。
這些訊息需要再次處理,從而增加佇列大小。
這增加了重複處理訊息的可能性。
理想的方法是將可見性超時設定為函式超時的 6 倍。
設定“最大接收次數”以在高併發情況下保持平衡至關重要。
當傳送過多訊息到死信佇列時,這有助於保持佇列的流動。
下表顯示了 SQS 佇列作為 Lambda 事件源的特性。
引數 | 值/限制 | 引數設定方式 |
---|---|---|
批處理訊息大小限制 | 1-10 | 在 Lambda 函式的事件源上配置 |
預設輪詢器數量 | 5 | 由 Lambda 服務管理 |
Lambda 增加並行輪詢器的速率 | 每分鐘最多 60 個 | 由 Lambda 服務管理 |
Lambda 處理的併發批次數 | 最多 10000 | 由 Lambda 服務管理 |
併發 Lambda 函式數量 | 1000、函式或賬戶限制中的較小者 | 預留併發限制 |
每個佇列的訊息數 | 無限制 | 不適用 |
可見性超時 | 0 秒至 12 小時 | 在佇列上配置 |
重試次數 | 1-1000 | 最大接收次數 |
函式超時 | 0 秒至 15 分鐘 | 在函式上配置 |
相關閱讀
使用長輪詢處理訊息Amazon SQS 限制
Lambda 開發人員指南:使用 Lambda 和 Amazon SQS
如何將 Amazon SQS 用作 Lambda 的事件源