Amazon MQ 和 SQS 有啥区别?

Posted

技术标签:

【中文标题】Amazon MQ 和 SQS 有啥区别?【英文标题】:What is the difference between Amazon MQ and SQS?Amazon MQ 和 SQS 有什么区别? 【发布时间】:2020-06-05 20:06:51 【问题描述】:

我是 AWS 的新手。据我了解,AWS MQ 和 AWS SQS 都是消息队列工具。唯一值得注意的区别是 SQS 是完全托管的。

我们什么时候应该使用 SQS 或 MQ?

【问题讨论】:

【参考方案1】:

SQS 是一种简单的排队服务。它不支持许多更高级别的抽象,如消息路由、扇出、分发列表等。它是一个队列——产生一条消息,然后传递一条消息。当您需要具有有限后备逻辑的队列时,它很有用。

AWS MQ 是一种托管的 Apache ActiveMQ(或 RabbitMQ)代理服务。

这为您提供了一个完全托管的云端 Apache ActiveMQ 系统,支持各种行业标准的队列和广播协议,如 AMQP、JMS 等。当您有复杂的交付规则时,或者当您正在将现有系统从 AWS 外部迁移到 AWS,而您的系统恰好使用标准队列协议相互通信。

【讨论】:

除了上面的答案,简单来说我们可以说Amazon SQS是ActiveMQ的简化版本。在 ActiveMQ 中有一个 Broker 的概念,它包含一个或多个队列。您可以在此视频中了解有关 ActiveMQ 的更多信息youtube.com/watch?v=s-E_V5Xyg6k 虽然从技术上讲,SQS 确实不支持路由和扇出,但值得一提的是,它经常用于 SNS + SQS 组合。这提供了一个消息过滤和扇出等功能。【参考方案2】:

从AWS Documentation,您可以搜索“问:我应该什么时候使用 Amazon MQ 与 Amazon SQS 和 SNS?”:

Amazon MQ、Amazon SQS 和 Amazon SNS 是消息传递服务,它们是 适合从初创公司到企业的任何人。如果你正在使用 与现有应用程序进行消息传递,并希望移动您的消息传递 快速轻松地迁移到云端,我们建议您考虑使用 Amazon MQ。 它支持行业标准的 API 和协议,因此您可以切换 从任何基于标准的消息代理到 Amazon MQ,无需重写 应用程序中的消息传递代码。如果你正在建造全新的 云中的应用程序,我们建议您考虑使用 Amazon SQS 和 亚马逊社交网络。 Amazon SQS 和 SNS 是轻量级、完全托管的消息 队列和主题服务几乎可以无限扩展并提供 简单易用的 API。您可以使用 Amazon SQS 和 SNS 来解耦 并扩展微服务、分布式系统和无服务器 应用,并提高可靠性。

此外,在此文档中,您可以检查与其他服务的比较。

【讨论】:

以上是关于Amazon MQ 和 SQS 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我应该使用 Amazon Kinesis 而不是 SNS-SQS?

Amazon SQS 延迟队列

jboss.jms 和 jboss.mq 有啥区别?

KnpGaugretteBundle 的 AwsS3 和 Amazon S3 (amazon_s3) 有啥区别?

Kubernetes 和 Amazon ECS 有啥区别

SQS 和 SNS 对比分析