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

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

Amazon Simple Queue Service 是什么?

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

Amazon SQS 同时支持StandardFIFO 队列. 有关更多信息,请参阅队列类型

Amazon SQS 的优势

  • 安全由您控制谁能向 Amazon SQS 队列发送消息以及谁能从队列接收消息。

    服务器端加密 (SSE)可让您通过使用Amazon Key Management Service(Amazon KMS)。

  • 持久性— 为确保您消息的安全,Amazon SQS 将消息存储在多个服务器上。标准队列支持至少一次消息传递和 FIFO 队列支持完全一次的消息处理.

  • 可用性— Amazon SQS 使用冗余基础设施为生成和使用消息提供高度并发的消息访问和高可用性。

  • 可扩展性— Amazon SQS 可以处理每个缓冲的请求独立扩展,可透明扩展以处理任何负载增加或峰值,无需任何预配置指令。

  • 可靠性Amazon SQS 在处理期间锁定消息,以便多个生成者可同时发送消息,多个使用者可同时接收消息。

  • 自定义— 您的队列不必完全相同,例如,您可以在队列上设置默认延迟. 可存储大于 256 KB 的消息的内容Amazon Simple Storage Service (Amazon S3)或 Amazon DynamoDB,Amazon SQS 持有指向 Amazon S3 对象的指针,您也可以将一个大消息拆分为几个小消息。

Amazon SQS、Amazon MQ 和 Amazon SNS 之间的区别

Amazon SQS 和Amazon SNS是高度可扩展、易于使用且不需要您设置消息代理的队列和主题服务。我们建议对新的应用程序使用这些服务,这样可以实现几乎不受限制的可扩展性和简单 API。

Amazon MQ是一项托管消息代理服务,可兼容许多常见消息代理。我们建议使用 Amazon MQ 从依赖与 API(如 JMS)或协议(AMQP、MQTT、OpenWire 和 STOMP)的兼容性的现有消息代理迁移应用程序。

队列类型

下表介绍了标准队列和 FIFO 队列的功能。

标准队列 FIFO 队列

无限吞吐量— 标准队列的每个 API 操作每秒支持接近无限的 API 调用 (SendMessageReceiveMessage,或者DeleteMessage)。

至少一次传递— 至少传送一次消息,但偶尔会传送消息的多个副本。

尽可能努力订购— 偶尔会按不同于其发送时的顺序传递。

高吞吐量— 如果您使用的是批处理,FIFO 队列的每个 API 方法每秒最多支持 3000 条消息 (SendMessageBatchReceiveMessage,或者DeleteMessageBatch)。每秒 3000 条消息代表 300 条 API 调用,每条调用包含 10 条消息的批处理。要申请提高配额,请提交支持请求。在不使用批处理的情况下,FIFO 队列的每个 API 方法(SendMessageReceiveMessageDeleteMessage)每秒最多支持 300 个 API 调用。

确切一次处理— 消息传递一次并在使用者处理并删除它之前保持可用。不会将重复项引入到队列中。

先进先出交付— 严格保持消息的发送和接收顺序。

当吞吐量很重要时,请在应用程序之间发送数据,例如:

  • 将实时用户请求从密集型后台工作中分离:让用户在调整媒体大小或对媒体编码时上传媒体。

  • 将任务分配给多个工作程序节点:处理大量信用卡验证请求。

  • 将消息分批以便进一步处理:计划要添加到数据库的多个条目。

当事件的顺序重要时,请在应用程序之间发送数据,例如:

  • 确保按正确的顺序运行用户输入的命令。

  • 通过按正确的顺序发送价格修改来显示正确的产品价格。

  • 防止学员在注册账户之前参加课程。

Amazon SQS 入门的常见任务

Amazon SQS 的定价

Amazon SQS 没有前期费用。前一百万个月的请求是免费的。之后,您将根据请求的数量和内容以及与 Amazon S3 和Amazon Key Management Service.

想要了解有关信息,请参阅Amazon SQS 定价.