云端问道16期方案教学-高弹性低成本的云消息队列RabbitMQ版

简介: 高弹性、低成本的云消息队列 RabbitMQ 版由阿里云专家分享,涵盖四大方面:产品优势、架构原理、Serverless 系列及适用场景。该产品基于自主研发的分布式存储架构,完全兼容开源客户端,解决了开源产品的稳定性问题,提供秒级扩展能力,支持高达5万QPS。Serverless 系列采用按量付费模式,适用于开发测试、流量波动大及突发流量场景,极大降低成本并提高资源利用率。

高弹性、低成本的云消息队列 RabbitMQ 版

 

摘要:本次分享的主题是高弹性、低成本的云消息队列 RabbitMQ 版,由阿里云消息队列产品专家杨文婷分享。接下来将从四个方面进行介绍。首先会阐述这款语音消息队列相比 ABQ 具有哪些优势。针对这些优势会详细讲解其架构实现原理。在此基础上会进一步说明,利用这一架构实现的 Serverless 系列能为大家带来哪些好处。之后会探讨这个系列产品的适用场景分别是什么。

1. 云消息队列 RabbitMQ 的产品优势

2. 架构实现原理

3. 高弹性低成本的 Serverless 系列

4. Serverless 系列适用场景

image.png

image.png

 

01. 云消息队列 RabbitMQ 的产品优势 

image.png

在此之前,有一个前提条件需要特别指出:云消息队列 RabbitMQ 并非开源的托管版本,而是基于自主研发的高可用分布式存储架构实现的,它遵循 AMQP 协议 0-9-1 版本,是一款功能强大的消息队列产品。

云消息队列产品具备三大显著优势。首先,它能够让大家十分安心的是该产品完全兼容开源客户端。由于它支持 AMQP 协议,因此开源的所有语言、所有版本的客户端都能实现无缝上云使用。这意味着用户无需修改任何代码,仅需调整服务接入点,即可轻松接入并使用。在保持这一兼容性的基础上架构还成功解决了开源产品中存在的许多稳定性问题。

比如,开源消息队列的堆积能力可能会导致服务在单机状态下不可用,同时其集群的容量受限于机器规格的上限。另外,当尝试支持多可用区的高可用性时,开源消息队列很容易出现脑裂等问题。而开源消息队列的运维也因其基于的编程语言而面临挑战,往往难以快速定位并解决根本原因。然而在云上的消息队列产品中,这些问题都不复存在。因为架构从根本上解决了这些开源稳定性方面的痛点,确保了产品的稳定与可靠。

再者基于 Server 弹性以及该架构,还能为用户提供卓越的弹性能力。得益于其分布式架构的设计,该产品拥有极高的弹性。同时它采用按量付费的模式,使得用户能够以低成本享受这一消息队列产品。具体来说,其弹性能力体现在秒级扩展上,能够轻松支持高达 5 万 QPS 的弹性需求。

除了上述特点外,作为商业化产品还为用户提供了极为强大的可观测性能力,以助力用户高效排查线上业务问题。在监控方面为用户提供了十分完善的监控指标。这些指标不仅种类繁多,而且 Label 的粒度非常细致,能够精确到 Exchange 和 Queue 级别。同时还提供了非常直观的数据大盘。通过展示的两个截图,用户可以一目了然地查看到实例资源中所有 Exchange 的各项指标排序情况,以及资源在解决问题过程中的趋势变化。

image.png

另外与开源产品相比还具有一个显著的优势,即消息轨迹查询能力。在这张图中,用户可以看到非常详尽的生产者信息,包括消息的路由、入队信息,以及消息的投递和 ACK 的完整信息。借助这些信息,用户可以迅速定位问题出现的原因及具体环节。

 

02. 架构实现原理

image.png

展开来讲如何实现这一高弹性且无需频繁扩容的优势的。这背后其实依赖于两个关键点:一个是纯算分离的分布式架构,另一个则是我们强大的弹性调度系统。分布式架构是实现高弹性的经典方式之一。它主要分为计算层和存储层。计算层主要负责协议适配,如 AMQP 0-9-1 协议,以及处理商业化权限、负载均衡等计算相关的逻辑。而存储层则专注于存储队列中的消息,处理消息的删除、 ACK 、提交、写入等存储相关的能力。这两层是分离且各自独立的。

实际上计算层和存储层都可以分别进行扩容,并且它们被部署在多个可用区内。图中虽然仅展示了两个可用区,但实际上它们可以部署在不同的可用区中。因此,当某个可用区遭遇网络或电力等故障时,人员和客户端可以无缝地重新连接到另一个可用区,并确保消息能够平稳迁移。在此基础上为什么又能够实现快速扩容呢?由于采用的是分布式架构,无论是计算节点还是存储节点,都可以通过横向扩容的方式增加节点,从而通过扩容来提升整体容量。

服务的高可用性实际上是基于多可用区部署的策略来实现的。在两个可用区中,节点之间是平等的,并且采用主从架构,虽然与开源的主副节点架构有所不同,但这里强调的是节点的平等性。在异常情况发生时,前端负载均衡能够迅速将服务切换到另一个可用区。此外之所以不存在脑裂问题,是因为所有节点都是对等的,因此从根本上避免了选举主节点时可能出现的分裂情况。

在这种情况下如何实现快速的弹性扩展呢?这主要依赖于实现的弹性调度系统。首先该系统包含一个监控模块,该模块能够快速分析整个集群的流量、服务指标、集群水位以及资源池的各项指标。接着根据预设的计算规则,系统会通过 ACK 容器服务,迅速地在每个集群中拉起缺失的节点,从而实现机器的快速扩容。这包括实例的迁移、流量的迁移以及容灾切换等操作,都是通过调度系统拉起缺失的容器节点来完成的。因此正是得益于这种高效的监控与调度机制,系统才能够实现快速的弹性扩展以及多可用区的高可用性。

在底层,容器技术实际上调用了阿里巴巴的整个ECS资源池,以及云盘、 OSS 和盘古等多种存储资源,还有网络负载均衡等多样化的资源。在这个庞大的资源池支持下,系统能够拥有巨大的资源数量。通过容器的快速启动和计算,以及集群水位的动态计算,系统能够迅速地实现弹性的资源调度和扩展。

 

03. 高弹性低成本的 Serverless 系列

image.png

在这个基础上推出了高弹性、低成本的 Service 系列,这一系列为用户带来了两大显著好处。首先它的付费模式是按量计费,即根据累计的消息收发次数来收费。这种模式为用户提供了一个低成本、零门槛的付费选择。具体来说,用户在开通实例时无需支付任何费用,只有在真正进行消息收发、创建 Queue 资源时,才会产生费用。大家无需像其他云厂商那样,在开始时就需要预估业务的最高峰值,并根据这个峰值去部署一个最大规格的集群。因为很多时候,这样的部署会导致资源的浪费。而我们则可以根据实际的业务流量来计费,这有效地解决了用户的成本问题。

此外资源池规模庞大,因此您无需担心突发流量或大流量会导致集群水位不足的问题。您也无需预估将来可能达到的最大流量,并据此部署多种规格的集群。而服务也无需进行容量评估,从而降低了您的运维成本。

 

04. Serverless 系列适用场景

image.png

在此基础上 Service 系列适用的场景非常广泛。它实现了开箱即用,只需简单点击购买,即可立即创建实例。在创建实例后,对于许多场景,特别是在普通流量场景下,它能够显著节约成本。由于无需根据峰值流量预部署资源,可以根据实际流量来付费。因此,大部分闲置资源无需支付费用。

在一些极端情况下,比如开发测试环境,消息量通常非常少。许多开发测试环境使用 Service ,可能每月仅需支付不到 10 元或非常低廉的费用,即可满足其需求。在这样的开发测试环境下,很多团队或项目经常需要创建独立的环境,比如每个项目或业务线都可能需要一个独立的环境。在这种情况下 Service 能够大量节约机器资源。

还有一个场景是有一些业务具有非常明显的流量波峰和波谷。例如充电桩业务、学校打开水业务,或是 KTV 等娱乐场所。这些业务在一天中的大部分时间里可能几乎没有流量,但在某些特定时段会有大量使用。比如学校的打开水业务,可能仅在每天的晚饭后高峰期有较高流量,而其他 22 或 23 个小时里几乎无流量。对于这类业务 Service 能够极大地节约成本,非常适合它们的使用。

而在面对非预期流量,比如突发流量的情况。如果采用传统的自建系统或其他厂商按机器规格购买的方案,很难保障这种突发流量的稳定性。例如,一些游戏活动在人数突然增加时,流量峰值会非常高,这是非预期的。另外,很多平台软件会允许第三方随机提交数据,这时可能会突然出现一个巨大的数据提交量,需要缓慢地分配给下游的消费者,从而形成一个流量高峰。在这种情况下弹性服务,特别是高达 5 万 QPS 的弹性能力,能够满足这些突发流量的业务需求。因此在这些场景下实际上在很多情况下都节约了大量的成本,有时甚至可以达到 50% 到 80% 左右的成本节约。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 存储 监控
高弹性、低成本的云消息队列RabbitMQ 版
本次课程由阿里云消息队列产品专家杨文婷分享,主题为高弹性、低成本的云消息队列RabbitMQ。内容涵盖四个方面:1) 产品优势,包括兼容开源客户端、解决稳定性痛点和高弹性低成本;2) 架构实现原理,如分布式架构和弹性调度系统;3) Serverless系列带来的按量付费模式和资源池优势;4) Serverless适用场景,如开发测试环境、峰谷流量业务等。最后解答了关于顺序消费、与普通MQ对比、自动扩容及API支持等常见问题。
465 46
|
消息中间件
高弹性低成本的云消息队列 RabbitMQ 版陪跑班开课啦!
参与 高弹性低成本的云消息队列 RabbitMQ 版陪跑班 赢好礼
225 10
高弹性低成本的云消息队列 RabbitMQ 版陪跑班开课啦!
|
项目管理
干货|80天自学通过高级项目管理师
干货|80天自学通过高级项目管理师
719 0
|
3月前
|
人工智能 自然语言处理 安全
国内主流Agent工具功能全维度对比:从技术内核到场景落地,一篇读懂所有选择
2024年全球AI Agent市场规模达52.9亿美元,预计2030年将增长至471亿美元,亚太地区增速领先。国内Agent工具呈现“百花齐放”格局,涵盖政务、金融、电商等多场景。本文深入解析实在智能实在Agent等主流产品,在技术架构、任务规划、多模态交互、工具集成等方面进行全维度对比,结合市场反馈与行业趋势,为企业及个人用户提供科学选型指南,助力高效落地AI智能体应用。
2972 144
|
8月前
|
SQL 自然语言处理 数据库
告别切屏|阿里云DMS MCP+通义灵码30分钟搞定电商秒杀开发
近日,阿里云数据管理DMS发布 开源DMS MCP Server,支持RDS、PolarDB、OLAP、NoSQL等40+主流数据源连接的多云通用数据MCP Server,一站式解决跨源数据安全访问。点击访问开源DMS MCP Server GitHub地址:https://github.com/aliyun/alibabacloud-dms-mcp-server
629 0
|
机器学习/深度学习 人工智能 开发者
DeepSeek安装部署指南,基于阿里云PAI零代码,小白也能轻松搞定!
阿里云PAI平台支持零代码一键部署DeepSeek-V3和DeepSeek-R1大模型,用户可轻松实现从训练到部署再到推理的全流程。通过PAI Model Gallery,开发者只需简单几步即可完成模型部署,享受高效便捷的AI开发体验。具体步骤包括:开通PAI服务、进入控制台选择模型、一键部署并获取调用信息。整个过程简单快捷,极大降低了使用门槛。
2129 43
|
6月前
|
人工智能 IDE 测试技术
Browser-Use在UI自动化测试中的应用
Browser-Use是一款浏览器自动化工具,具备视觉与HTML解析、多标签管理、操作记录与复现、自定义操作、自我纠正及并行执行等功能,助力AI智能体高效完成网页任务。
643 0
|
11月前
|
人工智能 前端开发 算法
AI程序员全面上线!10分钟就能完成整个开发过程!
AI程序员全面上线!10分钟就能完成整个开发过程!
|
存储 DataWorks 数据处理
dataworks里面的stg层、ods层、dwd层、dws层、是怎么分层的呢?
【8月更文挑战第21天】dataworks里面的stg层、ods层、dwd层、dws层、是怎么分层的呢?
1467 7
|
存储 编解码 数据处理
云端问道第4期实践教学——多媒体数据存储与分发方案部署演示
该文档详细介绍了阿里云一键部署和手动部署多媒体数据存储与分发方案的步骤。一键部署通过资源编排服务(ROS)实现自动化,涵盖注册账号、开通服务、创建OSS Bucket、配置CDN加速及绑定IMM等功能,简化了复杂操作。手动部署则更细致地展示了每个配置环节,包括网络规划、资源创建、域名绑定、CDN配置、证书加密及最终的验证与清理,确保用户对整个流程有清晰理解。两种方式均以OSS为核心,支持数据上传、转码处理和加速分发,保障高效稳定的用户体验。
545 4