轻量消息队列(原 MNS)支持将亚马逊云计算服务AWS(Amazon Web Services)的产品Amazon Simple Queue Service(Amazon SQS)和Amazon Simple Notification Service(Amazon SNS)数据无缝迁移至阿里云产品轻量消息队列(原 MNS)。本文从产品功能、限制和SDK角度介绍Amazon SQS、Amazon SNS和轻量消息队列(原 MNS)的区别,以及如何通过简单的适配完成SQS和SNS数据的迁移。
背景信息
Amazon SQS、Amazon SNS和轻量消息队列(原 MNS)产品功能接近一致。阿里云产品轻量消息队列(原 MNS)提供队列模型和主题模型,AWS产品SQS和SNS分别提供队列模型和主题模型。
功能对比
下表从队列模型和主题模型两个功能角度对比阿里云产品轻量消息队列(原 MNS)与AWS云产品SQS和SNS。
功能分类 | 功能明细 | 轻量消息队列(原 MNS) | Amazon SQS/Amazon SNS |
队列模型 | 消息生命周期 | 支持,消息状态机的状态包含以下类型:
| 支持,消息状态机的状态包含以下类型:
|
消息自定义保存时长 | 支持 | 支持 | |
消息延迟(消息定时时间) | 支持 | 支持 | |
消息可见性超时时间 | 支持 | 支持 | |
消息最大长度配置 | 支持 | 支持 | |
死信队列 | 支持 | 支持 | |
FIFO队列(顺序/去重) | 不支持 | 支持 | |
主题模型 | 过滤订阅 | 支持Tag过滤 | 支持JSON策略过滤 |
Queue订阅 | 支持 | 支持 | |
HTTP订阅 | 支持 | 支持 | |
短信订阅 | 支持 | 支持 | |
邮箱订阅 | 支持 | 支持 | |
移动推送 | 支持 | 支持 | |
函数计算 | 支持 | 支持 | |
死信队列 | 支持 | 支持 | |
FIFO队列(顺序/去重) | 不支持 | 支持 |
功能限制
下表从队列模型和主题模型两个功能角度对比阿里云产品轻量消息队列(原 MNS)与AWS云产品SQS和SNS。
功能分类 | 功能明细 | 轻量消息队列(原 MNS) | Amazon SQS/Amazon SNS |
队列模型 | Queue命名 | 队列名称区分大小写,最多可包含120个字符。 | 队列名称区分大小写,最多可包含80个字符。 |
消息保存时间 | 7天 | 14天 | |
长轮询间隔 | 0s~30s,默认为15s。 | 0s~20s | |
消息最大负载 | 64 KB。如需调整消息最大负载,可提交工单申请。 | 256 KB | |
消息可见性超时时间 | 1s~43200s,默认为30s。 | 1s~43200s,默认为30s。 | |
队列标识 |
|
| |
消息延时时间 | 使用参数DelaySeconds设置,取值范围:0s~604800s。 | 使用参数DelaySeconds设置,取值范围:0s~604800s。 | |
消息堆积数量限制 | 无限制 | 无限制 | |
访问QPS限制 | 不在队列资源维度设限,每个主账号每个地域有限流阈值,数据流消息收发相关接口QPS上限为20000,更多信息,请参见限流策略。 | 无限制 | |
主题模型 | Topic名称限制 | 120个字符,不区分大小写。 | 3~64个字符,区分大小写。 |
消息最大长度 | 64 KB | 256 KB | |
重试策略限制 |
|
| |
单主题订阅数量限制 | 100个。如需调整,可提交工单申请。 | 12500000个 | |
访问QPS限制 | 不在主题资源维度设限,每个主账号每个地域有限流阈值,数据流消息收发相关接口QPS上限为20000,更多信息,请参见限流策略。 | 每个主题300 QPS,或者每秒10 MB流量,以先到者为准。 |
SDK对比
SDK类型 | 阿里云轻量消息队列(原 MNS) | Amazon SQS | Amazon SNS |
管控API | |||
HTTP SDK | 支持Java、Python、C#、PHP、C++、Go和JMS等SDK。 | 支持Java、JavaScript、PHP、Python、Ruby和Windows & .NET等SDK。 | 支持Java、JavaScript、PHP、Python、Ruby和Windows & .NET等SDK。 |
迁移步骤说明
从SQS和SNS迁移数据到轻量消息队列(原 MNS)时,为确保您的业务平滑过渡,建议您首先同步队列、主题和订阅的元数据,然后业务侧做双读双写策略过渡。下图以SQS数据迁移到轻量消息队列(原 MNS)为例,介绍迁移的过程。具体步骤如下: