

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

# 從標準佇列移至 Amazon SQS 中的 FIFO 佇列
<a name="FIFO-queues-moving"></a>

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

**關鍵考量**
+ **建立 FIFO 佇列：**您無法將現有的標準佇列轉換為 FIFO 佇列。您必須為應用程式建立新的 FIFO 佇列，或刪除現有的標準佇列，並將其重新建立為 FIFO 佇列。
+ **延遲參數：**FIFO 佇列不支援每個訊息的延遲，僅支援每個佇列的延遲。如果您的應用程式在每則訊息上設定 `DelaySeconds` 參數，您必須改為修改它以設定在整個佇列`DelaySeconds`上。
+ **訊息群組 ID：**為每個傳送的訊息提供訊息[群組 ID](high-throughput-fifo.md#partitions-and-data-distribution)。此 ID 可平行處理訊息，同時維持其個別順序。使用訊息群組 ID 的精細商業維度，以更好地擴展 FIFO 佇列。您分發訊息的目標訊息群組 IDs 越多，可供取用的訊息數量就越多。
+ **高輸送量模式：**針對 FIFO 佇列使用建議的[高輸送量模式](high-throughput-fifo.md#partitions-and-data-distribution)，以達到更高的輸送量。如需簡訊配額的詳細資訊，請參閱 [Amazon SQS 訊息配額](quotas-messages.md)。

**移至 FIFO 佇列的檢查清單**

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

1. **設定延遲設定**
   + 修改您的應用程式以移除每個訊息的延遲。
   + 在整個佇列上設定 `DelaySeconds` 參數。

1. **設定訊息群組 IDs**
   + 根據業務維度指定訊息群組 ID，將訊息組織成訊息群組。
   + 使用更精細的業務維度來改善可擴展性。

1. **處理重複訊息刪除**
   + 如果您的應用程式無法使用相同的訊息內文傳送訊息，請為每個訊息提供唯一的訊息重複資料刪除 ID。
   + 如果您的應用程式傳送具有唯一訊息內文的訊息，請啟用內容型重複資料刪除。

1. **設定取用者**
   + 一般而言，消費者不需要變更程式碼。
   + 如果處理訊息需要很長的時間，且可見性逾時設為高，請考慮將接收請求嘗試 ID 新增至每個`ReceiveMessage`動作。這有助於在聯網失敗時重試接收嘗試，並防止佇列因接收嘗試失敗而暫停。

透過遵循這些步驟，您可以確保您的應用程式正確使用 FIFO 佇列，充分利用其排序和恰好一次的處理功能。如需詳細資訊，請參閱 * [Amazon Simple Queue Service API 參考](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/)*。