作者:家泽、稚柳
前言:
在 AI 原生应用架构浪潮中,消息队列需支持大规模数据和复杂 AI 模型训练与推理场景下的高效异步通信,其成本效益优化也日益受到重视。面对大模型或大数据量,消息量显著增加,云消息队列 ApsaraMQ 致力于降低消息队列成本,减轻用户负担,同时,通过架构演进,提升数据处理能力、安全性、性能和资源利用率,让 AI 开发者在更低的成本下获得更高的效益。
背景
云消息队列 ApsaraMQ 始终围绕“高弹性低成本、更稳定更安全、智能化免运维”三大核心方向进行演进和拓展。在追求“高弹性低成本”方面,云消息队列 ApsaraMQ 全系列产品(涵盖云消息队列 RocketMQ、Kafka、RabbitMQ、MQTT 以及消息服务 MNS)均已实现 Serverless 化,支持自适应弹性,秒级万 QPS 弹性扩展,并采用按实际使用量付费的模式,实例成本平均降低 50%。
本文将探讨云消息队列 ApsaraMQ 在成本治理方面的实践经验,同时介绍在 Serverless 版本中的架构优化和新增能力。希望能够为企业或个人提供成本控制参考,同时帮助大家更好地理解和使用云消息队列 ApsaraMQ,以实现成本效益最大化。
资源成本与运维成本相辅相成
在软件研发过程中,除了考虑产品迭代的开发成本及运营成本之外,运行时成本主要由资源成本和运维成本组成,两者相辅相成。
- 要降低资源成本,通常需要对现有架构进行调整。而确保架构变更的安全性和稳定性,则需要依赖完善的运维体系,包括有效的监控和快速恢复机制。
- 引入监控和告警系统提高系统可靠性,可能会增加核心组件的资源开销,以及影响产品性能。但若没有完善的运维体系,在系统出现问题时,会导致更大的业务损失。
因此,我们应重视运维体系的建设,在降低成本的同时,确保系统的稳定性和可靠性。这需要我们在资源利用和运维管理之间找到平衡,以实现成本效益的最大化。
为了有效降低资源和运维成本,同时提高系统性能和稳定性、优化运维效率,我们采取了以下有效策略:
降低资源成本:
- 提升软件性能:优化产品软件,增强自身性能,从而提高运行效率,减少资源占用。
- 降低资源消耗:通过技术手段,选择性价比更高的产品依赖,提高资源使用效率。
- 提高资源利用率:与运维团队合作,监控资源利用率,确保与系统稳定性相匹配。
降低运维成本:
- 监控告警指标覆盖:建立完善的指标体系,全面反映系统运行状况,确保性能提升和架构优化达到预期效果。
- 快速恢复:优化 MTTR,依赖于强大的监控系统和自动化恢复能力,缩短故障发现时间和故障解决时间。
- 无损升级:实现无感知升级,降低用户升级成本,在不中断服务、不干扰客户使用的情况下进行升级。
- 弹性伸缩:加强云服务底层组件弹性伸缩能力,根据并发请求和元数据用量动态调整资源,有效控制成本,提高资源利用率。
架构优化,提升产品性能降低资源消耗
以 Kafka 为例,开源 Kafka 是典型存算一体架构,通常基于本地文件系统或本地盘自建,存在一定的局限性:
1)单盘性能瓶颈: 单盘的吞吐量和容量受限,形成性能瓶颈。
2)资源灵活性差: 存储和计算资源比例固定,不能灵活调整适配。
3)扩缩容耗时长: 节点是有状态的,扩缩容需要涉及数据迁移,但受原始节点负载、数据量和磁盘吞吐等因素影响,TB 级数据通常需要小时级迁移时长,导致整体风险提高,运维压力大。
4)存储架构复杂: 对象存储用于存储冷数据,本地盘存储热数据,而本地盘需要多副本保证数据可靠性,从而增加网络资源消耗,同时,需要实现本地存储文件和二级存储文件之间的逻辑映射机制,增加了系统复杂度。
上图是 Kafka 3.0 的架构,从技术层面实现存算分离,在计算层做到了无状态,通过开源 ISR 机制进行主从选举,同时引入 RDMA 协议,显著减少整个系统在交互过程中的 CPU 消耗;存储层采用盘古 DFS 作为共享存储,消息数据(CheckPoint 和 index 文件依然写入分布式文件系统)写入盘古 DFS 保证可靠性。
此外,还从以下几个方面进行了存储结构优化:
- 内存聚批: 支持时间、空间和频率等多种提交策略;减少网络抖动、长尾影响服务质量。
- 用户态缓存: 支持多级缓存机制,数据就近加速;冷热数据分离,避免缓存污染。
- 冷读优化: 冷热线程(协程)分离,避免全局不可用;数据预加载、预读,自适应调整 IO 大小。
性能测试数据显示,优化后的 Kafka 3.0 在攒批和碎片化发送场景,性能均优于开源版本。
资源消耗方面,Kafka 3.0 通过存算分离设计,简化架构,降低资源成本。仅需一份存储资源即可确保数据可靠性,整体存储成本降低约 30%。
软硬结合,进一步提升产品性能
云消息队列 ApsaraMQ 通过与云原生芯片倚天进行了深度优化,进一步提升了产品性能。
为了充分发挥倚天芯片的优势,我们在消息收发链路上引入了自动聚合器,通过批量计算提高效率。在消息序列化方面,我们采用了更紧凑的数据结构,减少了数据复制和传输开销。同时,我们将序列化过程拆分为多个子任务并行执行,充分利用倚天芯片的多核处理能力和 ARM 指令集优化。
通过这些针对性的优化措施,最终实现了在相同机型和流量条件下,倚天芯片的消息延迟比 X86 架构降低了 20%,消息吞吐量提高了 30%。
增强运维能力,降低运维成本
为了提高运维效率、降低运维成本,同时确保系统的稳定性和可靠性,我们提供了以下增强能力:
监控体系建设: 通过监控关键性能指标来优化资源使用和控制成本。云消息队列 ApsaraMQ 覆盖了全面的监控和告警指标,帮助用户了解资源使用情况并调整资源分配,包括物理节点、网络、磁盘、IO 等操作系统指标监控,以及消息收发量、RPC 异常次数、消息堆积等业务指标监控。同时,引入端到端巡检,模拟用户收发 SDK 主要接口行为,实时发现系统异常,分钟级探测感知和报警。
消息健康管家: ApsaraMQ Copilot for RocketMQ 提供全链路健康度智能巡检与诊断的先进功能,成为构建高效消息集成链路的重要工具。通过全面监控、量化分析与配置可定制性、简化诊断流程等关键操作,全面升级其监控和诊断能力。
无损升级: RocketMQ 5.2.0 版本新增服务端升级时主动通知客户端的功能,实现优雅下线。客户端接收通知后自动重连到未升级节点并重试上次发送的消息,从而保障业务连续性。
弹性伸缩: 弹性伸缩是 ApsaraMQ Serverless 版本的核心功能,适用于业务量波动较大的场景,通过监控业务流量、集群水位和资源剩余量,自动进行垂直或水平扩展,或在集群实例间进行弹性调度。目前已达到秒级万 QPS 弹性扩展,满足大规模业务需求。
好礼放送
- 阿里云 618 创新加速季正在火热进行中,为企业提供丰富的补贴和礼包,助力数字化创新。云消息队列 ApsaraMQ 也带来了精选产品的折扣优惠和资源包。
欢迎访问活动页面,了解更多详情:https://www.aliyun.com/activity/Mid-promotion/NativeCloud618
- 随着云消息队列 ApsaraMQ 产品品牌升级(https://www.aliyun.com/product/ons ),我们正在开展有奖调研活动,收集用户对"ApsaraMQ"产品品牌的宝贵意见。
欢迎点击“此处”进行参与,我们将从参与者中随机抽取 5 名幸运用户,送出精美礼品!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。