本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從標準佇列移至 Amazon 中的FIFO佇列 SQS
如果您現有的應用程式使用標準佇列,且您想要利用FIFO佇列的排序或一次性處理功能,則需要正確設定佇列和應用程式。
關鍵考量事項
-
建立FIFO佇列:您無法將現有的標準佇列轉換為FIFO佇列。您必須為應用程式建立新的FIFO佇列,或刪除現有的標準佇列,並將其重新建立為FIFO佇列。
-
延遲參數:FIFO佇列不支援每個訊息的延遲,僅支援每個佇列的延遲。如果您的應用程式在每則訊息上設定
DelaySeconds
參數,則必須修改參數,以改為在整個佇列DelaySeconds
上設定 參數。 -
訊息群組 ID:為每個傳送的訊息提供訊息群組 ID。此 ID 可平行處理訊息,同時維護其各自的順序。為訊息群組 ID 使用精細的業務維度,以更好地擴展FIFO佇列。IDs 您分發訊息的目標訊息群組越多,可供取用的訊息數量就越多。
-
高輸送量模式:使用建議的佇列高輸送量模式FIFO來提高輸送量。如需傳訊配額的詳細資訊,請參閱 Amazon SQS 訊息配額。
移至FIFO佇列的檢查清單
傳送訊息至FIFO佇列之前,請確認下列事項:
-
設定延遲設定
-
修改您的應用程式以移除每個訊息的延遲。
-
設定整個佇列上的
DelaySeconds
參數。
-
-
設定訊息群組 IDs
-
根據業務維度指定訊息群組 ID,將訊息組織為訊息群組。
-
使用更精細的業務維度來改善可擴展性。
-
-
處理訊息重複資料刪除
-
如果您的應用程式可以傳送具有相同訊息內文的訊息,請為每個訊息提供唯一的訊息重複資料刪除 ID。
-
如果您的應用程式使用唯一的訊息內文傳送訊息,請啟用內容型重複資料刪除。
-
-
設定取用者
-
一般而言,消費者不需要變更程式碼。
-
如果處理訊息需要很長時間,且可見性逾時設定為高,請考慮將接收請求嘗試 ID 新增至每個
ReceiveMessage
動作。這有助於在網路失敗時重試接收嘗試,並防止佇列因接收嘗試失敗而暫停。
-
依照這些步驟,您可以確保應用程式正確使用FIFO佇列,充分利用其排序和一次性處理功能。如需更多詳細資訊,請參閱 Amazon Simple Queue Service API參考 。