

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon SQS FIFO 队列
<a name="sqs-fifo-queues"></a>

FIFO（先进先出）队列除了具有[标准队列](standard-queues.md)的所有功能之外，还能在操作和事件的顺序很重要或不能容忍重复项的情况下增强应用程序之间的消息收发。

FIFO 队列最重要的特征是 [*FIFO（先进先出）传递*](FIFO-queues-understanding-logic.md)和*[仅处理一次](FIFO-queues-exactly-once-processing.md)*：
+ 发送和接收消息的顺序严格保持一致；一条消息只会被传递一次，并且在使用者处理并删除该消息之前，其他使用者无法进行处理。
+ 不会将重复项引入到队列中。

此外，FIFO 队列还支持*消息组*，此类组允许一个队列中存在多个有序的消息组。一个 FIFO 队列中的消息组数量没有配额。

您可以使用 FIFO 队列的情况示例如下：

1. 订单至关重要的电子商务订单管理系统

1. 与需要按顺序处理事件的第三方系统集成

1. 按输入顺序处理用户输入的内容

1. 通信和联网 - 按相同的顺序发送和接收数据与信息

1. 计算机系统 - 确保用户输入的命令按正确的顺序运行

1. 教育学院 - 防止学员在注册账户之前参加课程

1. 在线售票系统 - 票按先到先得的原则分发

**注意**  
FIFO 队列还提供“仅处理一次”功能，但每秒事务数 (TPS) 有限。您可以将 Amazon SQS **高吞吐量**模式与 FIFO 队列配合使用，以提高事务限额。有关使用高吞吐量模式的详细信息，请参阅 [Amazon SQS 中 FIFO 队列的高吞吐量](high-throughput-fifo.md)。有关吞吐量配额的信息，请参阅[Amazon SQS 消息配额](quotas-messages.md)。

Amazon SQS FIFO 队列在所有提供 Amazon SQS 的区域推出。

有关使用具有复杂排序功能的 FIFO 队列的更多信息，请参阅[使用 Amazon SQS FIFO 队列解决复杂的排序难题](https://aws.amazon.com/blogs/compute/solving-complex-ordering-challenges-with-amazon-sqs-fifo-queues/)。

有关如何使用 Amazon SQS 控制台创建和配置队列的信息，请参阅[使用 Amazon SQS 控制台创建标准队列](creating-sqs-standard-queues.md#step-create-standard-queue)。有关 Java 的示例，请参阅 [Amazon SQS Java SDK 示例](sqs-java-tutorials.md)。

有关使用 FIFO 队列的最佳实践，请参阅 [Amazon SQS 最佳实践](sqs-best-practices.md)。