

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

# Amazon SNS 中的高輸送量 FIFO 主題
<a name="fifo-high-throughput"></a>

Amazon SNS 中的高輸送量 FIFO 主題可有效管理高訊息輸送量，同時維持嚴格的訊息順序，確保處理大量訊息之應用程式的可靠性和可擴展性。此解決方案非常適合同時需要高輸送量和排序訊息傳遞的案例。若要使用高輸送量 FIFO 主題改善訊息輸送量，建議增加訊息群組的數量。如需高輸送量訊息配額的詳細資訊，請參閱 中的 [Amazon SNS 服務配額](https://docs.aws.amazon.com/general/latest/gr/sns.html)*Amazon Web Services 一般參考*。

## Amazon SNS FIFO 主題高輸送量的使用案例
<a name="fifo-topic-use-cases"></a>

下列使用案例強調高輸送量 FIFO 主題的各種應用程式，展示其在各產業和情境中的效率：
+ **即時資料處理：**處理事件處理或遙測資料擷取等即時資料串流的應用程式，可以受益於高輸送量 FIFO 主題，以處理訊息的持續流入，同時保留其順序以進行準確分析。
+ **電子商務訂單處理：**在維護客戶交易訂單至關重要的電子商務平台上，高輸送量 FIFO 主題可確保訂單按順序交付，而不會延遲，即使在尖峰購物季節也一樣。
+ **金融服務：**處理高頻率交易或交易資料的金融機構依賴高輸送量 FIFO 主題來處理市場資料和交易，同時遵守嚴格的訊息排序法規要求。
+ **媒體串流：**串流平台和媒體分發服務利用高輸送量的 FIFO 主題來管理媒體檔案和串流內容的交付，確保順暢的使用者播放體驗，同時維持內容交付的正確順序

## Amazon SNS FIFO 主題高輸送量的分割區和資料分佈
<a name="fifo-topic-partitians-and-data-distribution"></a>

透過高輸送量主題，Amazon SNS 會將 FIFO 主題資料分散到各個分割區。分割區是 主題的容量配置，該主題會自動複寫到 內的多個可用區域 AWS 區域。您未管理分割區。反之，Amazon SNS 會根據輸入速率，代表您自動管理分割區。

對於 FIFO 主題，Amazon SNS 會在下列情況修改主題中的分割區數量：
+ 如果目前的發佈速率接近或超過現有分割區可支援的速率，則會分配額外的分割區，直到主題達到區域配額為止。如需配額的資訊，請參閱 中的 [Amazon SNS 服務配額](https://docs.aws.amazon.com/general/latest/gr/sns.html)*Amazon Web Services 一般參考*。
+ 如果目前的分割區使用率低，則可能會減少分割區的數目。

分割區管理會在背景自動進行，而且對您的應用程式是透明的。您的主題和訊息隨時可用。

**注意**  
如果您突然且大幅增加主題的流量，同時傳送一般磁碟區數倍，則可能會發生暫時[發佈](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html) API 限流。此限流可持續長達重複資料刪除時段的持續時間，同時主題會向上擴展以適應增加的流量。

## 依訊息群組 ID 分發資料
<a name="fifo-topic-message-group-ids"></a>

將訊息發佈至 FIFO 主題時，Amazon SNS 會使用每個訊息的訊息群組 ID 的值做為內部雜湊函數的輸入。雜湊函數的輸出值會決定處理訊息的分割區，指定的分割區可能會處理一或多個訊息群組 IDs。

**注意**  
Amazon SNS 已針對 FIFO 主題的分割區中項目的統一分佈進行最佳化，無論您 AWS 使用的訊息群組 IDs 可以有大量不同值的分割區數量為何。

## 在 Amazon SNS FIFO 主題上啟用高輸送量
<a name="enable-high-throughput-on-fifo-topic"></a>

根據預設，Amazon SNS FIFO 主題設定為進行主題層級重複資料刪除，這會由[https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)設定為 的主題屬性控制，`Topic`並且具有更多限制的輸送量配額，請參閱 中的 [Amazon SNS 服務配額](https://docs.aws.amazon.com/general/latest/gr/sns.html)*Amazon Web Services 一般參考*。

若要啟用 Amazon SNS FIFO 主題的高輸送量，請將 `FifoThroughputScope` 屬性更新為 `MessageGroup`。此變更可以透過 主控台或使用 AWS CLI 和 SDK 完成，也可以在主題建立期間設定，Amazon SNS 會建議獲得最佳客戶體驗，並減少您的主題受到調節的機會。

**重要**  
啟用主題的 `FifoThroughputScope`至 後`MessageGroup`，該主題就無法還原為`Topic`輸送量。

## 為任何訂閱的 Amazon SQS FIFO 佇列啟用高輸送量模式
<a name="enable-high-throughput-for-sqs-fifo-queue"></a>

發佈至啟用高輸送量的 Amazon SNS FIFO 主題，並訂閱一或多個 Amazon SQS FIFO 佇列時，建議您在 Amazon SQS FIFO 佇列上啟用高輸送量，讓 Amazon SNS FIFO 高輸送量主題能夠順暢交付。如需詳細資訊，請參閱 *Amazon 簡單佇列服務開發人員指南*中的 [FIFO 佇列的高輸送量](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html)。