跳至主要内容

消息队列的功能

概览

使用功能各不相同的单独组件构建应用程序,是有助于提高可扩展性和可靠性的最佳实践方案。借助消息队列,您可以在任何数量的应用程序组件之间发送、存储和接收消息,而不会丢失消息,也不需要其他服务保持始终可用。

消息队列提供了多种选项,让您可以指定消息在该队列中的传送方式以及安全性和描述方式。此外,您还可以采用扇出设计模式将队列与发布/订阅消息收发结合起来。

什么是消息队列?

开始使用

试试亚马逊 SQS

只需三个简单的命令即可开始使用 Amazon Simple Queue Service(SQS)。

免费试用 Amazon SQS

免费套餐详情

AWS 免费套餐包含 100 万个 Amazon Simple Queue Service (SQS) 请求。

查看 AWS Free Tier 详细信息 »

功能

推送或拉取传送

大多数消息队列都提供用于检索消息的推送和拉取选项。拉取是指不断查询队列以获取新消息。推送意味着当消息可用时会通知消费者(这也称为 Pub/Sub 消息)。您还可以使用长时间轮询,以允许在完成拉取之前等待指定的时间量,以等待新消息到达。

计划或延迟传送

许多消息队列支持为消息设置特定的传送时间。如果需要所有消息都有共同的延迟,可以设置延迟队列。

至少一次传送

消息队列可以存储消息的多个副本,以实现冗余和高可用性,并且在通信失败或错误的情况下重新发送消息,以确保其至少传送一次。

确切一次传送

当无法容忍重复时,FIFO(先进先出)消息队列将通过自动筛选出重复项来确保每条消息只传送一次(且只能传送一次)。

FIFO(先进先出)队列

在这些队列中,最早的(或第一个)条目(有时称为队列的“头”)最先处理。要了解有关 Amazon SQS FIFO 队列的更多信息,请参阅开发人员指南。

您还可以阅读我们的博客:使用 Python 和 Amazon SQS FIFO 队列保留消息序列亚马逊 SQS FIFO API 的工作原理以及具有精确一次处理和重复数据删除功能的 FIFO 队列。

死信队列

死信队列指的是其他队列可以向其发送无法被成功处理的消息的队列。这样就可以很容易地将其放在一边进行进一步检查,而不会阻塞队列处理,或在可能永远不会成功使用的消息上花费 CPU 周期。

要了解有关死信队列的更多信息,请阅读我们的博客《使用 Amazon SQS 死信队列控制消息故障》。要了解如何在 Amazon SQS 中使用死信队列,请参阅我们的开发人员指南。

订购

大多数消息队列都提供尽力排序,确保消息的传送顺序通常与发送的顺序相同,并且一条消息至少传送一次。

毒丸消息

毒丸是一种特殊的消息,可以被接收,但不能被处理。这种机制可用于向使用者发出结束工作的信号,使其不再等待新的输入,类似于在客户端/服务器模型中关闭套接字。

安全性

消息队列将对尝试访问队列的应用程序进行身份验证,并允许您使用加密来加密网络上以及队列本身中的消息。要了解有关 AWS 队列安全的更多信息,请阅读我们的博客《亚马逊简单队列服务 (SQS) 的服务器端加密》。您还可以在我们的开发人员指南中了解有关 Amazon SQS 安全功能的更多信息。

Amazon Simple Queue Service (SQS)

只需三个简单的命令即可开始免费试用。
免费试用

找到今天要查找的内容了吗?

请提供您的意见,以便我们改进网页内容的质量。