本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SQS 佇列類型
Amazon SQS 支援兩種佇列類型:標準佇列和 FIFO 佇列。使用下表來判斷哪個佇列最符合您的需求。
標準佇列 | FIFO 佇列 |
---|---|
無限制輸送量 – 標準佇列支援每個動作 ( At-least-once交付 – at-least-once交付,這表示每則訊息至少交付一次,但在某些情況下,由於重試或網路延遲,訊息可能會交付一次以上。您應該設計應用程式以使用等冪性操作來處理潛在的重複訊息,以確保多次處理相同的訊息不會影響系統的狀態。 最佳努力排序 – 提供最佳努力排序,這表示當 Amazon SQS 嘗試按照訊息傳送的順序傳遞訊息時,不保證這一點。在某些情況下,訊息可能無法按順序送達,尤其是在高輸送量或故障復原的情況下。對於訊息處理順序至關重要的應用程式,您應該處理應用程式中的重新排序邏輯,或使用 FIFO 佇列進行嚴格排序保證。 耐用性和備援 – 標準佇列可跨多個 AWS 可用區域儲存每則訊息的多個副本,以確保高耐用性。這可確保即使發生基礎設施故障,訊息也不會遺失。 可見性逾時 – Amazon SQS 可讓您設定可見性逾時,以控制訊息在收到訊息後隱藏的時間長度,確保其他消費者不會處理訊息,直到完全處理或逾時過期為止。 |
高輸送量 – 當您使用批次處理時,每個 API 方法 ( 精確處理一次 – FIFO 佇列會傳送每則訊息一次,並保持可用狀態,直到您處理和刪除訊息為止。透過使用 First-in-first-out交付 – FIFO 佇列可確保您依訊息群組內傳送的順序接收訊息。透過將訊息分散到多個群組,您可以平行處理訊息,同時保持每個群組中的順序。 |
![]() |
![]() |
當輸送量至關重要時,使用標準佇列在應用程式之間傳送資料,例如:
|
當事件順序很重要時,使用 FIFO 佇列在應用程式之間傳送資料,例如:
|