從標準佇列移至 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. 設定取用者

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

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

依照這些步驟,您可以確保應用程式正確使用FIFO佇列,充分利用其排序和一次性處理功能。如需更多詳細資訊,請參閱 Amazon Simple Queue Service API參考