FIFO 主題的訊息群組 - Amazon Simple Notification Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

FIFO 主題的訊息群組

屬於相同群組的郵件會依相對於群組的嚴格順序逐一處理。

當您發佈訊息到 Amazon SNS FIFO 主題時,則需要設定訊息群組 ID。群組 ID 是強制權杖,指定訊息屬於特定訊息群組。SNS FIFO 主題會將群組 ID 傳遞至訂閱的 Amazon SQS FIFO 佇列。SNS FIFO 主題或 SQS FIFO 佇列中的群組 ID 數目沒有限制。訊息群組識別碼不會傳遞至 Amazon SQS 標準佇列。

訊息群組與訂閱之間沒有相似性。因此,發佈至任何訊息群組的訊息會傳遞至所有訂閱的佇列,受限於附加至訂閱的任何篩選政策。如需更多詳細資訊,請參閱 FIFO 主題的訊息傳遞FIFO 主題的訊息篩選

汽車零件價格管理範例使用案例中,平台上銷售的每個產品都有專用的訊息群組。相同的 Amazon SNS FIFO 主題用於處理所有價格更新。價格更新的順序會保留在單一汽車零件產品的上下文中,但非跨多個產品。下圖顯示此運作方式。請注意,對於具有產品-214 訊息群組 ID 的產品,m1 訊息一律會在 m4 訊息前處理。在使用 Amazon SNS FIFO 到 Amazon SQS FIFO 的整個工作流程中都會保留此順序。同樣地,對於訊息群組 ID 為產品-799 的產品,只要工作流程使用 Amazon SNS FIFO 和 Amazon SQS FIFO,就會在訊息 m3 之前處理訊息 m2。但是,使用 Amazon SQS 標準佇列時,訊息順序將不再保證,訊息群組也不存在。所以此產品-214產品-799 訊息群組彼此獨立,因此訊息的排序方式之間沒有任何關係。

訊息會以相對於訊息群組的嚴格順序處理。

使用訊息群組 ID 傳遞資料以改善效能

為了最佳化傳遞輸送量,Amazon SNS FIFO 主題會平行傳遞來自不同訊息群組的訊息,同時嚴格維護每個訊息群組內的訊息順序。每個單獨的訊息群組,每秒最多可傳遞 300 則訊息。因此,若單一主題要達到高輸送量,請使用大量不同的訊息群組 ID。透過利用訊息群組的多樣化設定,Amazon SNS FIFO 主題會自動在大量並行分區之間傳遞消息。

注意

Amazon SNS FIFO 主題經過最佳化,可在訊息群組 ID 之間統一分配訊息,而不論群組數目為何。AWS 建議您使用大量不同的訊息群組 ID 以最佳化效能。

當使用高輸送量發至您的 Amazon SNS FIFO 主題,並訂閱一或多個 Amazon SQS FIFO 佇列時,建議您在佇列上啟用高輸送量。如需詳細資訊,請參閱 Amazon 簡單佇列服務開發人員指南中的 FIFO 佇列的高輸送量