Amazon SQS、Amazon MQ 和 Amazon SNS 之间的区别 - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

Amazon SQS、Amazon SNSAmazon MQ 是托管消息服务,具有高度可扩展性且易于使用。以下是这些服务之间区别的概述:

Amazon SQS 提供托管队列,以允许您集成和分离分布式软件系统和组件。Amazon SQS 提供一个通用 Web 服务 API,您可通过 Amazon SDK 支持的任何编程语言访问该 API。队列中的消息通常由单个订阅者处理。Amazon SQS 和 Amazon SNS 通常一起用于创建扇出消息应用程序

Amazon SNS 是一项发布订阅服务,提供从发布者(也称为创建者)到多个订阅者端点(也称为使用者)的消息传输。发布者通过将消息发送至主题与订阅用户进行异步交流,主题是一个逻辑接入点和通信渠道。订阅者可以订阅 Amazon SNS 主题并使用受支持的端点类型接收已发布的消息,例如,Amazon Data FirehoseAmazon SQSLambda、HTTP、电子邮件、移动推送通知和移动短信 (SMS)。Amazon SNS 充当消息路由器,向订阅者实时传送消息。如果订阅者在消息发布时不可用,则不会存储消息以备日后检索。

Amazon MQ 是一项托管消息代理服务,可兼容行业标准消息协议,例如 Advanced Message Queueing Protocol (AMQP) 和 Message Queuing Telemetry Transport (MQTT)。目前,Amazon MQ 支持 Apache ActiveMQRabbitMQ 引擎类型。

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

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

我们建议对新的应用程序使用 Amazon SQS 和 Amazon SNS,这样可以实现几乎不受限制的可扩展性和简单 API。我们建议 Amazon MQ 从依赖与 JMS 等 API 或高级消息队列协议 (AMQP)、MQTT 和简单文本消息协议 (STOMP) 等协议 (STOMP) 等协议兼容的现有消息代理中迁移应用程序。 OpenWire