從標準佇列移至 Amazon 中的FIFO佇列 SQS - Amazon Simple Queue Service

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

從標準佇列移至 Amazon 中的FIFO佇列 SQS

如果您現有的應用程式使用標準佇列,而且您想要利用FIFO佇列的排序或恰好一次的處理功能,則需要正確設定佇列和應用程式。

關鍵考量事項
  • 建立FIFO佇列:您無法將現有的標準佇列轉換為FIFO佇列。您必須為應用程式建立新的FIFO佇列,或刪除現有的標準佇列,並將其重新建立為FIFO佇列。

  • 延遲參數:FIFO佇列不支援每個訊息的延遲,僅支援每個佇列的延遲。如果您的應用程式在每個訊息上設定 DelaySeconds 參數,您必須修改它,以改為在整個佇列DelaySeconds上設定 參數。

  • 訊息群組 ID:為每個傳送的訊息提供訊息群組 ID。此 ID 可平行處理訊息,同時維護其個別順序。使用訊息群組 ID 的精細商業維度,以更好地擴展FIFO佇列。IDs 您分發訊息的目標訊息群組越多,可供取用的訊息數量就越多。

  • 高輸送量模式:使用建議的高輸送量模式,讓FIFO佇列達到更高的輸送量。如需傳訊配額的詳細資訊,請參閱 Amazon SQS 訊息配額

移至FIFO佇列的檢查清單

將訊息傳送至 FIFO 佇列前,請先確認以下項目:

  1. 設定延遲設定

    • 修改您的應用程式以移除每個訊息的延遲。

    • 設定整個佇列上的 DelaySeconds 參數。

  2. 設定訊息群組 IDs

    • 根據業務維度指定訊息群組 ID,將訊息組織成訊息群組。

    • 使用更精細的業務維度來改善可擴展性。

  3. 處理重複資料刪除訊息

    • 如果您的應用程式可以使用相同的訊息內文傳送訊息,請為每個訊息提供唯一的訊息重複資料刪除 ID。

    • 如果您的應用程式傳送具有唯一訊息內文的訊息,請啟用內容型重複資料刪除。

  4. 設定取用者

    • 一般而言,消費者不需要變更程式碼。

    • 如果處理訊息需要很長的時間,且可見性逾時設定為高,請考慮為每個ReceiveMessage動作新增接收請求嘗試 ID。這有助於在聯網失敗時重試接收嘗試,並防止佇列因接收嘗試失敗而暫停。

遵循這些步驟,您可以確保應用程式與FIFO佇列正確運作,充分利用其排序和完全一次性的處理功能。如需詳細資訊,請參閱 Amazon Simple Queue Service API參考