ApsaraMQ Serverless 演进之路,助力企业降本
作者:家泽
ApsaraMQ 与时俱进,砥砺前行
阿里云消息队列从诞生开始,至今已有十余年。今年,阿里云消息产品全面品牌升级为 ApsaraMQ,与时俱进,砥砺前行。
2012 年,RocketMQ 诞生于集团内部,用于淘宝交易等核心业务链路。历经集团多年来双 11 万亿级的考验、稳定性的打磨,依托云计算孵化,以及开源社区的协力。 于 2015 年,RocketMQ 在阿里云上,面向企业提供商业化的消息队列服务。随后以 RocketMQ 为基础,拓展 Kafka,RabbitMQ,MQTT,MNS 等商业化产品,致力于服务有更多场景需求的企业;
2017 年,RocketMQ 成为 Apache 基金会顶级项目;
2022 年,RocketMQ5.0 正式发布,完全构建于云原生基础设施之上, 充分释放云基础设施的池化能力,全方位提高消息的核心技术指标。在事件、流处理方面,做了新的提升。消息处理方面,在队列模型之上构建了消息模型 ,业务可以只需要关心消息而无需关心队列, 基于消息消费模型,客户端、连接和消费都是无状态的, 可在任意 Proxy 节点上飘移,真正做到轻量化。
2023 年,全系列产品 Serverless 化,面向企业提供极速弹性、更高性价比的云消息队列产品,帮助企业在消息队列使用上降本。
面向应用、数据集成的可靠消息通道
回顾过去十余年,消息产品始终坚持开源、集团、商业三位一体的发展思路,内核演进和产品共同迭代。十年来,在阿里云上累计服务了 10 万企业,覆盖互联网、零售、金融、汽车等 20 多个行业,大规模的生产实践持续积累产品的核心优势。同时,面向企业诉求,丰富产品矩阵,覆盖多样化的业务场景需要。为企业上云提供更精准的产品选型。
- RocketMQ 在微服务、应用领域以其 4 个 9 的可用性,9 个 9 的数据可靠性被广泛应用。同时,RocketMQ 提供了定时,顺序,事务多样性的消息类型,满足应用复杂业务需求;
- RabbitMQ 同样也是 messaging 的开源生态代表。商业化的 RabbitMQ 解决了开源 RabbitMQ 无法灵活扩缩容、脑裂、堆积等痛点问题,支持开源 RabbitMQ 无缝迁移到云上;
- Kafka是流式存储的代表,被广泛应用于大数据/日志处理场景,商业化版本兼容开源 3.3 之前的版本,并在存算分离,高可用容灾,弹性上做深、做强,相比开源自建成本更低,服务可用性更高;
- MQTT 在物联网/移动互联网的终端场景,提供了千万链接,百万并发的服务,相比开源版本加强了 MQTT 服务的后端生态建设,让数据链路可延续。
- MNS 是一款对标 AWS SQS/SNS 的消息产品,以轻量的消息队列支持简单的业务异步通信场景,提供轻量化的事件通知和 SaaS 集成能力。
无论是开源迁移上云,还是新业务构建,在 ApsaraMQ 产品系列中,总能找到一款适合业务场景的可靠的消息中间件。近年,阿里云消息团队在存算分离、多级存储和弹性上重点投入,进行架构升级,使消息产品从云原生走向 Serverless。
云产品从云原生走向 Serverless
云原生的本质是充分释放云计算的红利,实现企业业务的降本增效。在云原生阶段,云厂商提供全托管的中间件服务,在开源兼容的同时,补充运维及可视化的用户界面,达到开箱即用的效果,此时商业化形态多数以资源预留的包年包月方式面向企业收费。
随着云上资源规模的不断扩大,规模效应允许企业按照使用量付费,但对于单实例仍有规模限制,比较难应对业务突发流量。
随着云原生的发展,Serverless 的思想不断被加强,产品 Serverless 化的实现也不断的被赋能。Serverless 已经到了落地的阶段。企业只需聚焦在自身业务逻辑,对资源的使用和业务的流量无感。
面向 Serverless 设计的云消息服务
站在用户的视角,消息的 Serverless 化从成本、易使用、稳定性、生态集成几个方面持续演进:
低成本:
- 架构解耦,将网络、计算和存储分离,提升自身计算能力的同时,充分利用云原生网络和存储的弹性能力;
- 提升产品性能,降低产品自身资源使用成本,同时,建设 SRE 平台,实现自动化交付、升级、扩容,降低交付成本与运维成本;
- 优化计费方式,计费项(消息量,存储,网络)解耦,做到计费项按实际资源的使用量付费,降低以往固定计费项造成预估过量的浪费。
易使用: 主要考虑迁移上云方便,可靠,无损以及迁移后的控制面,提供对业务有价值的数据,不仅帮助企业观测云产品的使用,同时,对于业务的优化能够提供参考依据。
稳定性:
稳定性是企业使用云产品的基础考量,云产品运行稳定,过程可监测,应急有预案是业务持续性的重要保障。
生态集成:
丰富的消息产品生态,能够帮助企业快速完成业务的开发,放大消息的价值。
ApsaraMQ 核心产品升级
ApsaraMQ 全系列产品发布 Serverless 版,RocketMQ、RabbitMQ、MQTT Serverless 版实例 0 门槛,按实际使用量进行收费。计算成本最高可降低 75% 左右,并发流量可达秒级万 QPS 自适应弹性,在存算分离、多级存储架构之后,消息存储成本最高可降低 1/3。
Kafka 在十月底发布了 3.0 版本,计算节点无状态,存储及数据可用性下沉至云存储基础设施,解决了单盘吞吐能力受限、存算比例绑定、扩缩容数据迁移影响业务和跨可用区高可用性能等问题。单实例流量可达秒级 GB 自适应弹性。对比开源自建,成本最高降低 20%。
存算分离是消息服务 Serverless 化的基础
和应用解耦一样,在技术上,计算和存储分开,计算层才能更专注于业务逻辑的定义和演进。才能更好的实现按量使用,按需自适应弹性。
系统架构中,元数据(用户实例关系、订阅关系、参数配置等)统一管理;业务消息数据完全由基础存储设施做专业的存储保障,真正的做到计算层无状态。
计算层将复杂的数据可靠性机制下沉到存储层:
-
降低计算层的复杂逻辑,如数据复制成本,提升了性能和稳定性;
-
降低了跨AZ网络数据传输的影响,同时,降低网络吞吐以避免网络拥塞;
-
降低扩容、缩容时数据复制带来的资源开销和业务影响,提升了服务的可用性。
存储层,充分利用阿里云基础能力。
盘古 DFS 使用多副本以及 EC 等策略来保证数据极高的可靠性。将数据打散到不同的 rack 上,当某一台廉价的服务器发生故障时,仍然能够快速地恢复出数据的副本以保证数据安全,这种可靠性保证为有把握对上层承诺数据不丢失提供了稳固的基石,使得消息数据更加可靠,数据更加安全。盘古 DFS 支持跨数据中心的容灾策略,百微秒级平均延迟、毫秒级长尾延迟以及单存储节点打满 200Gbps 网络的 IOPS 处理能力,同时数据可靠性达到 12 个 9,可用性高达 5 个 9。
计算能力秒级弹性,降低闲置成本
消息的流量图基本是潮汐型,或潮汐型伴随着高毛刺。自建使用者以及云产品过去基本可以概括为资源预留型。
使用者用一批固定的资源,支持业务的流量。当出现核心业务流量高峰时,富裕的使用者有预留或提前增加机器以缓解毛刺流量,不富裕的使用者限制非核心业务流量。但给使用者带来了评估难,成本浪费的问题。
在 Serverless 架构版本中,将网络、计算和存储分离,网络和存储交由基础产品提供自适应弹性的能力,按量付费。
计算层在资源弹性的方式外,增加了基于实例以往业务流量指标、集群水位指标的智能化预弹方式。同时也增加了实例流量跨集群调度的方式。尽可能的缩短业务流量被限制的时间,达到快速支持毛刺流量的目标。
多级存储实现按需存储,大容量,低成本
消息是一个中间态数据,理论上消息快速被生产,快速被消费,数据在内存中流转速度是最快的。但实际生产中,我们可能面临着消息不能被及时消费,或消息需要被重新消费的场景。
在这些场景下,这些数据往往不在 PageCache 中,需要从磁盘读取并加载到 PageCache,当冷读较多时 PageCache 竞争激烈,频繁的换入换出导致缓存污染,严重影响写入性能。此外,处理生产和消费请求的同一线程池可能会受到冷读阻塞的影响,导致所有请求无法及时处理出现故障。为缓解此问题,通过"冷热数据隔离"、冷热线程(协程)分离和预加载等策略进行优化,消息生产不受影响,服务更稳定。
引入廉价的多级存储,降低了消息存储成本;同时,又可以延长数据保存时间。
可靠的 SLA 保障是服务稳定的基础
在一系列的架构演进的基础上,产品的可用性在技术实现得到了保障,单节点或可用区故障不影响服务的可用,同时单节点故障也可以利用容器的特性,快速自愈。服务可用性上最高可达 4 个 9,数据可靠性上最高可达 9 个 9;
在运行时稳定性保障上,理论与实践相结合,通过 SRE 平台,实现黑盒探测及指标监控相结合,覆盖 50 多项检测指标,可以做到全天 24 小时检测覆盖,异常分钟内被告警,服务 SLO 可观测。对于异常告警的每一项,都有对应的可操作应急预案。
MQ User Plane 全面升级
此外,产品体验也得到了提升,统一 ApsaraMQ 全系列产品面向用户的看版,基于 Metric 指标、消息轨迹、关键事件和业务日志,面向业务开发和运维人员提供告警,巡检诊断;基于专家经验,定义事件模型,给出根因分析,帮助企业快速排查和解决业务问题。
面向架构师,在接入前的评估,提供产品能力一键体验,成本估算的能力,方便分析师从体验中快速了解产品;统一消息系列产品生态,以消息流入、流出的能力快速实现数据集成。
可视化平滑迁移上云,风险小,成本低
迁移上云阶段,提供了可视化的迁移工具,保障上云平滑、无损的完成迁移。
丰富的消息生态助力企业快速构建应用
上云后,消息提供了丰富的生态,助力企业快速构建应用。
以 EventBridge /函数计算/云工作流 为核心,构建云集成范式,增强云产品间可联通性;EventBridge 在云产品事件集成方面,目前已经集成 200+ 云产品事件源,3000 多种事件类型。
在 SaaS 应用集成方面,包括钉钉、聚石塔以及云上 50 多个 SaaS 服务都可以通过 webhook 方式连接到 EB。
除此之外,目前 EB 已经对接了阿里云全量的云产品 API,任何一个事件都可以通过云产品 API 的方式进行触达。
云工作流提供可视化流程编排,完整的API对接,无需编写代码即可编排 EventBridge 的云服务;函数计算提升集成体验,基于 EventBridge 可以完成消息数据到大数据存储的分析场景等。
Confluent 成为背靠背的技术合作伙伴
10 月 31 日,杭州云栖大会上,阿里云云原生应用平台负责人丁宇宣布,Confluent 成为阿里云技术合作伙伴,合作全新升级,一起拓展和服务亚太市场。 本次合作伙伴签约,阿里云与 Confluent 将进一步加深合作,Confluent 将作为阿里云一方产品,在阿里云国内站,国际亚太站点全面发布,在阿里云 Apsara for Kafka下推出Confluent 规格,全面支持 Confluent 的商业化能力及解决方案。通过与 Confluent团队联合提供的技术支持,国内企业将在阿里云上使用 Confluent 服务。
点击阅读原文,ApsaraMQ Serverless 资源包抢先了解!
相关文章:

ApsaraMQ Serverless 演进之路,助力企业降本
作者:家泽 ApsaraMQ 与时俱进,砥砺前行 阿里云消息队列从诞生开始,至今已有十余年。今年,阿里云消息产品全面品牌升级为 ApsaraMQ,与时俱进,砥砺前行。 2012 年,RocketMQ 诞生于集团内部&…...

redis 从0到1完整学习 (六):Hash 表数据结构
文章目录 1. 引言2. redis 源码下载3. dict 数据结构4. 哈希表扩容与 rehash5. 参考 1. 引言 前情提要: 《redis 从0到1完整学习 (一):安装&初识 redis》 《redis 从0到1完整学习 (二):red…...

阿里云江苏省中小企业补贴5000元上云补贴金
阿里云「数智惠企」中小企业补贴,江苏区域企业提交申请内部评估及审批通过后,即可获取上云补贴金,使用补贴金购买指定云产品,满10000元即可立减5000元,请抓紧申领。阿里云百科 aliyunbaike.com 分享江苏区域5000元上云…...
PID算法
内容导航 类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统…...

Linux bridge开启hairpin模拟测试macvlan vepa模式
看到网上介绍可以通过Linux bridge 开启hairpin方式测试macvlan vepa模式,但是没有找到详细资料。我尝试测试总提示错误信息,无法实现,经过几天的研究,我总算实现模拟测试,记录如下: 参考 1.Linux Macvla…...
连续执行函数和alert与focus死循环事件
1.innerText value的值会根据输入的改变而改变DOM树,但是innerHTML和innerText有一种效果就是赋值的时候是标签下所有替代了,但是取值的时候还是html文件下,标签下的所有。如果赋值就是标签子都被这个代替。内部变量就是这个,没赋…...

向量投影:如何将一个向量投影到矩阵的行向量生成子空间?
向量投影:如何将一个向量投影到矩阵的行向量生成子空间? 前言 本问题是在学习Rosen梯度投影优化方法的时候遇到的问题,主要是对于正交投影矩阵(NT(NNT)-1N)的不理解,因此经过查阅资料,学习了关于向量投影的知识&…...
Ubuntu18.04安装GTSAM库(亲测可用)
在SLAM(Simultaneous Localization and Mapping)和SFM(Structure from Motion)这些复杂的估计问题中,因子图算法以其高效和灵活性而脱颖而出,成为图模型领域的核心技术。GTSAM(Georgia Tech Smo…...
SpringBoot中常见配置配置,MySQL、Redis、MinIO等
SpringBoot中配置 启动端口号 server:port: 8501 spring:application:name: server-managerprofiles:active: dev # 当前使用的配置文件servlet:multipart:max-file-size: 20MB # 最大文件max-request-size: 20MB# # 最大请求数据库相关 MySQL spring:datasource:type: com…...
面向LLM的App架构——技术维度
这是两篇面向LLM的大前端架构的第二篇,主要写我对LLM辅助开发能力的认知以及由此推演出的适合LLM辅助开发的技术架构。 LLM之于代码 商业代码对质量的要求其实对LLM是有点高的。主要是输入准确度、输出准确度(这个是绝大部分人质疑的点)、知…...

ArkUI - 状态管理
目录 一、State装饰器 二、自定义组件 三、Prop和Link、Provide和Consume 四、Observed和ObjectLink 一、State装饰器 这里涉及到两个概念 状态 和 视图 状态(State):指驱动视图更新的数据(就是被State注解标记的变量&…...

C++ 学习系列 -- C++ 中的多态行为
一 多态是什么? 多态是面向对象三大特征中重要一项,另外两项分别是封装与继承。 所谓多态,指的是多种不同的形态,也就是去完成某个具体的行为,多个不同的对象去操作同一个函数时,会产生不同的行为&…...
Spring Cloud中实现Feign声明式服务调用客户端
可以通过OpenFeign从一个服务中调用另一个服务,我们一般采用的方式就是定义一个Feign接口并使用FeignClient注解来进行标注,feign会默认为我们创建的接口生成一个代理对象。 当我们在代码中调用Feign接口的方法的时候,实际上就是在调用我们Fe…...

【网络编程】网络通信基础——简述TCP/IP协议
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、ip地…...
观察者模式 Observer
观察者模式属于行为型模式。在程序设计中,观察者模式通常由两个对象组成:观察者和被观察者。当被观察者状态发生改变时,它会通知所有的观察者对象,使他们能够及时做出响应。 三要素:观察者(Observer&#…...

Hadoop入门学习笔记——七、Hive语法
视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记(汇总) 目录 七、Hive语法7.1. 数据库相关操作7.1.1. 创建数据库7.1.2…...

采用SpringBoot框架+原生HTML、JS前后端分离模式开发和部署的电子病历编辑器源码(电子病历评级4级)
概述: 电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。 医院通过电子病历以电子化方式记录患者就诊的信息,包括&…...

HTML表单
<!DOCTYPE html> <html><head><meta charset"utf-8"><title>招聘案列</title></head><body><h1>午睡操场传来蝉的声音</h1><hr /><form>昵称:<input type"text" …...
Http 请求体和响应体中重要的字段
Http 请求体 Accept:用于告诉服务器客户端能够处理哪些媒体类型。Accept 头中的值通常是一个或多个 MIME 类型,并按优先级排序。服务器会根据 Accept 头中的值来决定响应的内容类型。例如,Accept: text/plain, text/html。Content-Type&…...

最新国内可用使用GPT4.0,GPT语音对话,Midjourney绘画,DALL-E3文生图
一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GP…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...