消息队列RabbitMQ版_AMQP_定时任务_容器与中间件-阿里云

消息队列 RabbitMQ 版
消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1协议的消息产品。消息队列 RabbitMQ 版兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。

产品规格

产品优势

兼容开源
支持 AMQP 0-9-1 版本标准协议,兼容 RabbitMQ 开源所有语言客户端和 Queue、Exchange、Vhost 组件
解决开源痛点
海量消息堆积能力,解决因消息堆积引起内存问题而导致宕机的痛点。集群分布式无主架构彻底根除了开源脑裂的痛点,高可扩展、弹性扩缩容、单队列吞吐量无上限
超强性能​​
支持百万级队列,单队列横向扩展,无并发限制;可扩展能力强、性能线性增强,可根据业务需求弹性伸缩,对用户透明;在海量消息堆积的情况下,始终保持高性能,不影响集群的正常服务
功能增强
全球消息路由提供了稳定可靠的 Shovel 转发消息能力,能够实现一键跨实例跨地域转发消息;新增消息消费超过最大重试次数后,自动进入死信队列;灵活的消息重试机制,不会因为个别问题阻塞而无法消费新生产的消息

产品功能

全模型支持完全兼容开源 RabbitMQ 的各个组件和概念。
Queue 模式支持 Queue 队列存储消息,提供多分区,同一消费者支持集群消费模式的。
Exchange支持绑定 Binding Key 的方式,Exchange 再将消息规则筛选路由到一个或多个 Queue,同时对不符合路由规则的消息进行丢弃的能力。
Vhost支持开源对应的虚拟主机能力,解决上产&测试、多业务拆分等隔离需求。
灵活 Exchange Type 类型支持
Fanout 类型支持 Exchange 的消息路由发送到所有与它绑定的 Queue 的模式。
Direct 类型支持将消息路由到 binding key 与 routing key 完全匹配的 Queue 的模式。
Topic 类型支持模糊匹配的方式即将消息路由到 binding key 与 routing key 模糊匹配的 Queue 的模式。
完善的运维配套提供一整套完善、便捷、易用的产品运维工具,帮助用户快速发现并处理问题。
监控告警实时监控在线连接、消息堆积、投递延迟,及时发现问题。
资源报表设备查询、分组在线设备管理、消息收发统计等。
Open API(RESTful)提供自助资源管理和运维功能,RESTful 标准,灵活便捷。

和开源自建对比

对比项
协议支持
客户端支持
系统架构
消息堆积能力
扩缩容能力
脑裂问题
强大的可观测能力
消息队列 RabbitMQ 版
AMQP 0-9-1
支持所有版本和语言开源客户端
消息队列 RabbitMQ 版采用集群分布式部署; 无主架构,集群中每台节点服务等价。
在海量消息堆积的情况下,始终保持高性能,不影响集群的正常服务。
单队列性能无上限,可横向扩容。可扩展能力强、性能线性增强,可根据业务需求弹性伸缩,对用户透明。
无脑裂痛点,无主架构,集群中每台节点服务等价。
商业版提供强大的监控告警能力,有丰富的 Prometheus 指标,包括实例、Vhost、Exchange、Queue 维度查看的消息速率、消息堆积量、当前连接数、 Channel 数、每个接口的请求 QPS 等。
开源 RabbitMQ
AMQP 0-9-1,AMQP 1-0
支持所有版本和语言开源客户端
Erlang 语言实现的,排查问题困难; 高可用的部署模式是非集群横向可扩展的架构,有性能瓶颈; 强依赖内存,引发各种稳定性痛点。
抗堆积能力差,容易引发内存问题而导致宕机。
如果是镜像队列集群,只能升级机器配置来扩容集群容量。
会因各种原因导致心跳丢失,引发脑裂问题,恢复过程会服务中断或数据丢失。
通过管控 API 获取指标数据自己搭建监控告警系统; 3.8.0以上版本通过 Prometheus 搭建监控告警,但没有细粒度的指标维度、无法精确监控告警。

应用场景

海量队列分发
大促容量平滑扩缩容
消费者流控保护
分布式定时任务
海量队列分发
RabbitMQ 的 Queue 模型能够快速搭建消息通知架构,支持店铺管理平台、渠道分销系统、游戏、IM、物业等多个系统的异步解耦需求;并且阿里云 RabbitmQ 的百万队列能力让您无需担心因为业务规模上升而引起Queue数量过多导致的稳定性问题。
能够提供
灵活适应业务的快速增长
相较于开源 RabbitMQ,阿里云 RabbitMQ 的能支持的队列的数量具有明显的数量级的优势,不再成为业务发展的瓶颈,不用担心队列过多引起的稳定性问题,保证核心链路的稳定运转。
解决 Queue 模型的阻塞痛点
阿里云 RabbitMQ 的集群架构能够灵活低自定义重投策略,完美解决开源 RabbitMQ 因少数消费异常的消息阻塞队列,导致后续消息无法正常消费从而引起消息处理延迟导致业务故障。
推荐搭配使用
大促容量平滑扩缩容
阿里云 RabbitMQ 的弹性扩缩容能力、开箱即用的能力满足因业务量的浮动变化产生的各种需求。如大促活动的流量远高于平时流量,阿里云 RabbitMQ 平稳的扩容能力能保证业务平滑度过大促高峰压力;大促过后快速地缩容到平时容量,帮助用户减少成本。
能够提供
容量无上限
阿里云 RabbitMQ 的集群分布式架构彻底解决了开源 RabbitMQ 架构的单机容量瓶颈问题,集群容量可以水平平滑扩容,且保证性能稳定。
单队列性能无上限
阿里云 RabbitMQ 的存储计算分离架构彻底解决了开源 RabbitMQ 架构单队列容量无法扩容的痛点,单队列支持的 TPS 无上限。
推荐搭配使用
消费者流控保护
在消费者需要流控保护的场景下,阿里云 RabbitMQ 的承担了上游流量压力,在保证消息系统可靠稳定运行的同时,也保证了下游业务在安全水位内平稳运行。
能够提供
海量消息堆积能力
在消费流控的场景下,RabbitMQ 的消息堆积能力是稳定性的前提。阿里云 RabbitMQ 具有海量消息堆积能力,高性能不受消息对接的影响,彻底解决了开源 RabbitMQ 因堆积引发内存问题导致宕机的痛点。
完全兼容开源SDK的流控使用方式
阿里云 RabbitMQ 完全兼容开源 SDK 和协议,支持开发者常用的流控实现方式,例如设置 channel 的并发度,设置拉取消息的条数 prefetch_count 等。
推荐搭配使用
分布式定时任务
阿里云 RabbitMQ 的定时消息能力可以满足各种分布式定时任务回调的场景需求,如订单状态到期变更、商家活动到期后结算活动结果以及定时广告投放等。
能够提供
秒级精确度
阿里云 RabbitMQ 的定时消息的精确度秒级误差,符合各种定时场景的业务要求。
简单易用
阿里云 RabbitMQ 的定时消息能力开箱即用,无需安装运维插件,只需要在生产者客户端发布消息时,通过 delay 为消息设置一个延时时间即可达到延时的效果。
推荐搭配使使用

更多产品与服务

消息队列 RocketMQ 版
阿里巴巴官方指定消息产品,成熟、稳定、先进的技术体系打造金融级消息服务,感受双十一产品的完美体验。
微消息队列 MQTT 版
移动互联网、物联网、互动直播原生支持,万物互联,端与云双向通信,支撑千万级设备同时在线。
消息队列 Kafka 版
消息队列 Kafka 版是 Apche Kafka 的全托管服务,具备专享集群部署、免运维、开箱即用、安全可靠的特点。
消息服务 MNS
阿里云消息服务 MNS 是一种高效、可靠、安全、便捷、可弹性扩展的分布式消息服务。MNS能够帮助应用开发者在他们应用的分布式组件上自由的传递数据、通知消息,构建松耦合系统。

文档与工具