FIFO 主題的重複訊息刪除 - Amazon Simple Notification Service

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

FIFO 主題的重複訊息刪除

Amazon SNS FIFO 主題和 Amazon SQS FIFO 佇列支援訊息重複資料刪除功能,只要符合下列條件,就能提供精確一次的訊息傳遞和處理:

  • 訂閱的 Amazon SQS FIFO 佇列存在,且具有允許 Amazon SNS 服務主體將訊息傳遞到佇列的權限。

  • Amazon SQS FIFO 佇列用戶會處理訊息,並在可見性逾時到期之前將訊息從佇列中刪除。

  • Amazon SNS 訂閱主題沒有訊息篩選。當您設定訊息篩選時,Amazon SNS FIFO 主題支援 at-most-once 交付,因為可以根據您的訂閱篩選政策篩選出訊息。

  • 沒有網路中斷會阻止確認訊息傳遞。

注意

重複訊息刪除功能適用於整個 Amazon SNS FIFO 主題,而不適用於個別訊息群組

當您發布訊息到 Amazon SNS FIFO 主題,訊息必須包含重複資料刪除 ID。此 ID 包含在 Amazon SNS FIFO 主題傳遞至訂閱的 Amazon SQS FIFO 佇列的訊息中。

如果具有特定重複資料刪除 ID 的訊息成功發布至 Amazon SNS FIFO 主題,則在五分鐘的重複資料刪除間隔內以相同重複資料刪除 ID 發布的任何訊息都會被接受,但不會傳遞。Amazon SNS FIFO 主題會繼續追蹤重複資料刪除 ID,即使郵件傳遞至訂閱的端點也一樣。

如果確保每封已發布訊息的郵件本文都是唯一的,您可以針對 Amazon SNS FIFO 主題和訂閱的 Amazon SQS FIFO 佇列啟用內容型重複資料刪除功能。Amazon SNS 使用訊息主體產生唯一的雜湊值,用作每封訊息的重複資料刪除 ID,因此您在傳送每封訊息時不需要設定重複資料刪除 ID。

注意

訊息屬性不包含在雜湊計算中。

當 Amazon SNS FIFO 主題啟用以內容為基礎的重複資料刪除功能,並使用重複資料刪除 ID 發佈訊息時,發佈的重複資料刪除 ID 會覆寫產生的以內容為基礎的重複資料刪除 ID。

汽車零件價格管理示範使用案例中,公司必須為每次價格更新設定一個通用唯一的重複資料刪除 ID。這是因為即使批發和零售的訊息屬性不同,訊息內文也可以是相同的。不過,如果公司將業務類型 (批發或零售) 新增至訊息主體,並在產品 ID 和產品價格旁邊,則可以在 Amazon SNS FIFO 主題和訂閱的 Amazon SQS FIFO 佇列中啟用內容型重複。

使用重複訊息資料刪除功能,多封含有重複內容的郵件只會傳送一次。

除了訊息排序和重複資料刪除之外,Amazon SNS FIFO 主題還支援含 AWS KMS 金鑰的訊息伺服器端加密 (SSE),以及透過 VPC 端點使用的訊息隱私權。 AWS PrivateLink如需更多詳細資訊,請參閱 FIFO 主題的訊息安全