佇列類型
Amazon SQS 針對不同的應用程式需求提供兩種佇列類型:
標準佇列
無限輸送量:標準佇列支援每個 API 動作每秒近乎無限個交易數 (TPS)。
至少傳遞一次:一個訊息至少傳遞一次,但偶爾會傳遞一個以上的訊息副本。
盡力按順序傳遞:訊息偶爾不會按照傳送順序傳遞。
FIFO 佇列
高輸送量:根據預設,FIFO 佇列支援高達每秒 300 個訊息 (每秒 300 次傳送、接收或刪除操作)。當您每個操作都要批次處理 10 則訊息 (最大值) 時,FIFO 佇列每秒最多可以支援 3,000 則訊息。若要要求提高限制,請發出支援要求。
恰好處理一次:訊息只會傳遞一次並保持可用狀態,直到消費者處理訊息並將之刪除。佇列尚未引進複製功能。
先入先出交付:嚴格保持訊息傳送和接收的順序 (即先入先出)。
只要應用程式可以處理抵達超過一次且未照順序排列的訊息,您就可以在許多案例使用標準訊息佇列,例如:
- 從密集型背景工作去耦即時使用者請求:讓使用者在重新調整大小或編碼時能上傳媒體。
- 將任務分配到多個工作者節點:處理大量的信用卡驗證請求。
- 批次處理訊息以供日後處理:排程要新增到資料庫的多個項目。
當操作和事件的順序很重要或者不能接受重複項目時,FIFO 佇列的設計可加強應用程式之間的簡訊功能,例如:
- 確保以正確順序執行使用者輸入的命令。
- 透過以正確順序傳送價格修改來顯示正確的產品價格。
- 避免學員在註冊帳戶之前註冊課程。
功能
- 無限的佇列和訊息:建立無限的 Amazon SQS 佇列,其中具有任何區域中不限數目的訊息
- 承載大小:訊息承載最多可包含 256 KB 的文字 (格式不限)。承載的每個 64 KB「區塊」以 1 次請求計費。例如,一個 256 KB 承載的單一 API 呼叫將以四次請求計費。若要傳送大於 256 KB 的訊息,可以使用 Amazon SQS Extended Client Library for Java (其使用 Amazon S3 存放訊息承載)。訊息承載的參考是使用 SQS 傳送。
- 批次:使用批次 (最多 10 則訊息或 256KB) 傳送、接收或刪除訊息。批次成本與單一訊息成本相同,表示對使用批次處理的客戶來說,SQS 經濟效益更佳。
- 長輪詢:減少額外的輪詢以盡量降低成本,同時以最快的速度接收新訊息。當您的佇列處於空的狀態時,長輪詢請求下一則訊息最多等待 20 秒。長輪詢請求和一般請求的成本相同。
- 保留佇列中的訊息,最多 14 天。
- 同時傳送和讀取訊息。
- 訊息鎖定:收到訊息後,處理期間其會變成「鎖定」狀態。這可防止其他電腦同時處理該訊息。如果訊息處理失敗,鎖定將會過期,而訊息可再次處理。
- 佇列共用:以匿名方式或透過特定的 AWS 帳戶安全地共用 Amazon SQS 佇列。佇列共用也可以依 IP 地址和一天中的時間加以限制。
- 伺服器端加密 (SSE):使用 AWS Key Management Service (AWS KMS) 中管理的金鑰保護 Amazon SQS 佇列中的訊息內容。SSE 在 Amazon SQS 一收到訊息時立刻加密。訊息以加密格式存放,而 Amazon SQS 只會在訊息傳送給授權的取用者時才會解密訊息。
- 無效字母佇列 (DLQ):使用無效字母佇列處理消費者未成功處理的訊息。當超過訊息的最大接收數時,訊息會移到與原始佇列相關聯的 DLQ。針對 DLQ 設定個別的消費者程序,這些程序可協助分析和了解訊息停滯的原因。DLQ 的類型必須與來源佇列 (標準或 FIFO) 一樣。
使用 Amazon SQS 搭配其他 AWS 基礎設施 Web 服務
Amazon SQS 訊息佇列可以和其他 AWS 服務搭配使用,例如 Redshift、DynamoDB、RDS、EC2、ECS、Lambda 和 S3,讓分散式應用程式更具可擴展性且更可靠。以下是常見的設計模式:
- 工作佇列:分離分散式應用程式的元件,不會全部同時處理相同的工作量。
- 緩衝和批次操作:加入架構的可擴展性和可靠性,消除臨時容量峰值且不會遺失訊息或增加延遲。
- 請求卸載:透過將請求排入佇列的方式,將慢速操作從互動請求路徑移除。
- 散發:結合 SQS 和 Simple Notification Service (SNS),將相同的訊息備份傳送給多個平行佇列。
- 優先順序:使用個別的佇列以提供工作的優先順序。
- 可擴展性:由於訊息佇列會將您的程序去耦,因此可以輕鬆地擴展訊息的傳送或接收速率 – 只要新增其他程序。
- 彈性:當您的部分系統失敗時,不需要關閉整個系統。訊息佇列會將系統的元件去耦,因此,如果從佇列讀取訊息的某個程序失敗,當系統復原後,仍然可以將訊息新增到待處理佇列。
預定用途和限制
使用本服務需遵守 Amazon Web Services 客戶協議。
進一步了解 Amazon SQS 定價