本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從標準佇列移至 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。
-
如果您的應用程式傳送具有唯一訊息內文的訊息,請啟用內容型重複資料刪除。
-
-
設定取用者
-
一般而言,消費者不需要變更程式碼。
-
如果處理訊息需要很長的時間,且可見性逾時設定為高,請考慮為每個
ReceiveMessage
動作新增接收請求嘗試 ID。這有助於在聯網失敗時重試接收嘗試,並防止佇列因接收嘗試失敗而暫停。
-
遵循這些步驟,您可以確保應用程式與FIFO佇列正確運作,充分利用其排序和完全一次性的處理功能。如需詳細資訊,請參閱 Amazon Simple Queue Service API參考。