什么是 Amazon Simple Queue Service? - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

什么是 Amazon Simple Queue Service?

Amazon Simple Queue Service (AmazonSQS) 提供安全、耐用且可用的托管队列,可让您集成和分离分布式软件系统和组件。Amazon SQS 提供常见的结构,例如死信队列成本分配标签。它提供了一种通用 Web 服务API,您可以使用 Amazon SDK支持的任何编程语言访问该服务。

使用 Amazon 的好处 SQS

基本的亚马逊SQS架构

本节概述了分布式消息系统的各个部分,并解释了 Amazon SQS 消息的生命周期。

分布式队列

分布式消息系统有三个主要部分:分布式系统的组件、队列(分布在 Amazon SQS 服务器上)和队列中的消息。

在以下场景中,您的系统有多个创建者(向队列发送消息的组件)和使用者(从队列接收消息的组件)。队列(存放消息 A 到 E)将消息冗余存储在多SQS台 Amazon 服务器上。

分布式消息系统的三个主要部分:分布式系统的组件、队列(分布在 Amazon SQS 服务器上)和队列中的消息。

消息生命周期

以下场景描述了队列中 Amazon SQS 消息从创建到删除的生命周期。

队列中 Amazon SQS 消息的生命周期,从创建到删除。

Section one description for the previous lifecycle diagram. 创建者(组件 1)将消息 A 发送到队列,消息以冗余方式分布在 Amazon SQS 服务器上。

Section two description for the previous lifecycle diagram. 使用者(组件 2)准备好处理消息时,就从队列使用消息,然后返回消息 A。在处理消息 A 期间,它仍保留在队列中,并且在可见性超时期间不返回至后续接收请求。

Section three description for the previous lifecycle diagram. 使用者(组件 2)从队列中删除消息 A,以阻止该消息在可见性超时过期后被再次接收和处理。

注意

Amazon 会SQS自动删除队列中已超过最大消息保留期限的消息。默认的消息保存期为 4 天。不过,您可使用 SetQueueAttributes 操作将消息保存期设为介于 60 秒和 1209600 秒(14 天)之间的值。

亚马逊SQS、亚马逊 MQ 和亚马逊之间的区别 SNS

Amaz on SQS SNS、Ama zon 和 Amazon MQ 提供高度可扩展的 easy-to-use托管消息服务,每种服务都是为分布式系统中的特定角色设计的。以下是对这些服务之间的区别的详细介绍:

Amaz SQS on 将分布式软件系统和组件分离并扩展为队列服务。它通常通过单个订阅用户来处理消息,非常适合对顺序和防止消息丢失有严格要求的工作流程。为了实现更广泛的分发,Amazon SQS 与Amazon集成SNS可以实现粉丝传送消息模式,有效地同时向多个订阅者推送消息。

Amazon SNS 允许出版商通过主题向多个订阅者发送消息,这些主题充当沟通渠道。订阅者使用支持的终端节点类型接收已发布的消息,例如 Amazon Amazon Data FirehoseSQSLambda HTTP、、电子邮件、移动推送通知和移动短信 () SMS。该服务非常适合需要即时通知的场景,例如实时用户参与或警报系统。为防止订阅者离线时消息丢失,将 Amazon SNS 与 Amazon SQS 队列消息集成可确保一致传送。

Amazon MQ 最适合希望从传统消息代理迁移的企业,支持AMQP和等标准消息协议,以及 Apache Active MQ 和 MQTT RabbitMQ。它对需要稳定、可靠消息收发的遗留系统提供兼容支持,而无需进行大量重新配置。

下表概述了每种服务的资源类型:

资源类型 Amazon SNS Amazon SQS Amazon MQ
同步 Yes
异步 Yes
队列 Yes
发布/订阅消息收发 Yes Yes
消息代理 Yes

对于可以从几乎无限的可扩展性和简单性中受益的新应用程序,建议同时使用Amazon SNS 和Amazon APIs。SQS他们通常以其 pay-as-you-go定价为大批量应用程序提供更具成本效益的解决方案。我们建议 Amazon MQ 从依赖于与APIs诸如JMS高级消息队列协议 (AMQP)、MQTT、 OpenWire和简单文本消息协议 () 之类的协议兼容的现有消息代理中迁移应用程序。STOMP