云消息队列 RabbitMQ 版兼容开源RabbitMQ客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。
完全兼容AMQP 0-9-1标准协议,完全兼容RabbitMQ开源社区,快速迁移上云。
自研的分布式存储架构彻底解决开源各种稳定性痛点,提供多可用区高可用的稳定服务。
当某个可用区服务异常时,客户端可以通过自动重连功能,无缝切换到其他可用区使用。
支持百万级队列、单队列的横向扩展,可根据业务需求弹性伸缩,性能上无并发限制。
云消息队列 RabbitMQ 版对比开源 RabbitMQ,在功能、服务和性能、Exchange 和 Queue 等方面均具备优势。
开源 RabbitMQ | VS | 云消息队列 RabbitMQ 版 |
不稳定、维护难 消息堆积能力差,服务可用性和数据可靠性通过镜像队列或仲裁队列实现,容易出现脑裂问题。Erlang 小众语言实现且服务端日志简单,出现问题时难定位问题根因。 | 稳定性 | 稳定、服务高可用 采用多可用区高可用架构和存算分离架构,故障计算节点可快速摘除隔离;请求并发度和响应时间始终保持高性能,不影响集群正常服务。无主的集群部署存储架构,彻底去除了脑裂的问题。 |
成本高 由于不是横向扩容的分布式架构,需要事先按照最高业务容量部署机器规格。队列中堆积少量消息,会大幅度降低集群性能,需要为异常消息堆积场景预留较高的内存容量。 | 成本 | Serverless 系列 0 门槛按量后付费 Serverless 系列按量后付费,按照每 100 万生产或消费请求调用次数收费 ,无需提前评估规格和容量,支持 5 万 QPS 并发能力,并提供价格计算器帮助您快速评估费用。 |
无弹性、扩容难 受机器性能限制,集群 TPS、单个 Queue 的 TPS、连接数均有上限,且扩容困难。单机容量就是集群并发容量的上限,扩容需要通过升配机器规格或拆分集群实现。 | 弹性 | 无需容量评估,最高 5 万弹性 QPS 集群 TPS、单个 Queue 的 TPS、连接数均无上限,支持横向扩展。通过增减集群节点数量实现扩缩容,Serverless 系列按照消息生产消费量收费,无需评估容量和提前预留资源。 |
方案将创建云消息队列 RabbitMQ 版 Serverless 系列实例来进行消息的生产和消费,根据实际使用量计费,并查看指标变化和消息轨迹。
方案架构包含消息生产者、消息队列、消息消费者三个核心模块。消息在云消息队列 RabbitMQ 版的组件之间流动过程为:1. 生产者向 Exchange 发送消息;2. Exchange 根据消息属性将消息路由到 Queue 进行存储;3. 消费者从 Queue 拉取消息进行消费。