使用可執行獨立功能的個別元件來建置應用程式,是改善可擴展性和可靠性的最佳實務。您可以使用訊息佇列,在應用程式元件之間傳送、存放和接收不限數量的訊息,不會遺失訊息,也不需要其他服務永久可用。

訊息佇列提供多種選項,可讓您指定訊息傳遞的方式,以及如何保護安全,如下所述。您也可以使用散發設計模式中的發佈/訂閱簡訊結合佇列。

什麼是訊息佇列?

只需三個簡單的命令,即可開始使用 Amazon Simple Queue Service (SQS)。

免費試用 Amazon SQS

AWS 免費方案包含 100 萬個 Amazon Simple Queue Service (SQS) 請求。

查看 AWS 免費方案詳細資訊 »


大多數的訊息佇列同時提供推送和提取兩種選項來擷取訊息。提取表示持續查詢佇列是否有新訊息。推送表示訊息來時通知取用者 (這也稱為發佈/訂閱簡訊)。您還可以使用長時間輪詢,允許在完成之前等待指定的時長後提取,以便新訊息到達。

許多訊息佇列支援為訊息設定特定的交付時間。如果需要所有訊息都具有共同延遲,則可以設定一個延遲佇列。

訊息佇列可以儲存訊息的多個複本,以實現冗餘和高可用性,並在通訊失敗或錯誤的情況下重新傳送訊息,以確保訊息至少被傳遞一次。

當無法忍受出現重複項目時,FIFO (先入先出) 訊息佇列會自動篩選重複項目,以確保每則訊息只交付一次 (而且只有一次)。

無法寄出信件佇列是其他佇列可以向其傳送無法成功處理訊息的隊列。這樣就很容易將其放在一旁進一步檢查,而不會阻止佇列處理,或將 CPU 週期花費在可能永遠無法成功取用的訊息上。

若要進一步了解無法寄出信件佇列的相關資訊,請閱讀我們的部落格︰使用 Amazon SQS 無法寄出信件佇列來控制訊息失敗 (Using Amazon SQS Dead-Letter Queues to Control Message Failure)。若要了解如何在 Amazon SQS 中使用無法寄出信件佇列,請參閱我們的開發人員指南

大多數訊息佇列都可盡力提供最佳排序,這種方式可確定訊息一般會依照傳送的相同順序交付,而且訊息至少交付一次。

毒丸訊息是可以接收但無法處理的特殊訊息。這是一種用於通知取用者結束其工作的機制,因此不再等待新的輸入,並且類似於在用戶端/伺服器模型中關閉通訊端。

訊息佇列會驗證嘗試存取佇列的應用程式,並允許您使用加密來加密透過網路傳送及位於佇列本身的訊息。若要進一步了解 AWS 上的佇列安全,請閱讀我們的部落格︰Amazon Simple Queue Service (SQS) 的伺服器端加密 (Server-Side Encryption for Amazon Simple Queue Service (SQS))。您也可以在我們的開發人員指南中進一步了解 Amazon SQS 的安全功能。

只需三個簡單的命令即可開始免費試用。