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 化从成本、易使用、稳定性、生态集成几个方面持续演进:

图片

低成本:

  1. 架构解耦,将网络、计算和存储分离,提升自身计算能力的同时,充分利用云原生网络和存储的弹性能力;
  2. 提升产品性能,降低产品自身资源使用成本,同时,建设 SRE 平台,实现自动化交付、升级、扩容,降低交付成本与运维成本;
  3. 优化计费方式,计费项(消息量,存储,网络)解耦,做到计费项按实际资源的使用量付费,降低以往固定计费项造成预估过量的浪费。

易使用: 主要考虑迁移上云方便,可靠,无损以及迁移后的控制面,提供对业务有价值的数据,不仅帮助企业观测云产品的使用,同时,对于业务的优化能够提供参考依据。

稳定性:

稳定性是企业使用云产品的基础考量,云产品运行稳定,过程可监测,应急有预案是业务持续性的重要保障。

生态集成:

丰富的消息产品生态,能够帮助企业快速完成业务的开发,放大消息的价值。

ApsaraMQ 核心产品升级

图片

ApsaraMQ 全系列产品发布 Serverless 版,RocketMQ、RabbitMQ、MQTT Serverless 版实例 0 门槛,按实际使用量进行收费。计算成本最高可降低 75% 左右,并发流量可达秒级万 QPS 自适应弹性,在存算分离、多级存储架构之后,消息存储成本最高可降低 1/3。

Kafka 在十月底发布了 3.0 版本,计算节点无状态,存储及数据可用性下沉至云存储基础设施,解决了单盘吞吐能力受限、存算比例绑定、扩缩容数据迁移影响业务和跨可用区高可用性能等问题。单实例流量可达秒级 GB 自适应弹性。对比开源自建,成本最高降低 20%。

存算分离是消息服务 Serverless 化的基础

图片

和应用解耦一样,在技术上,计算和存储分开,计算层才能更专注于业务逻辑的定义和演进。才能更好的实现按量使用,按需自适应弹性。

系统架构中,元数据(用户实例关系、订阅关系、参数配置等)统一管理;业务消息数据完全由基础存储设施做专业的存储保障,真正的做到计算层无状态。

计算层将复杂的数据可靠性机制下沉到存储层:

  1. 降低计算层的复杂逻辑,如数据复制成本,提升了性能和稳定性;

  2. 降低了跨AZ网络数据传输的影响,同时,降低网络吞吐以避免网络拥塞;

  3. 降低扩容、缩容时数据复制带来的资源开销和业务影响,提升了服务的可用性。

存储层,充分利用阿里云基础能力。

盘古 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 资源包抢先了解!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/266705.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot实践指南

一.SpringBoot入门案例 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程 原生开发SpringMVC程序过程 在没有SpringBoot前: 1.入门案例开发步骤 (1)创建新模块,选…

PostGreSQL:货币类型

货币类型:money money类型存储固定小数精度的货币数字,小数的精度由数据库的lc_monetary设置决定。windows系统下,该配置项位于/data/postgresql.conf文件中,默认配置如下, lc_monetary Chinese (Simplified)_Chi…

【Filament】纹理贴图

1 前言 本文主要介绍使用 Filament 实现纹理贴图,读者如果对 Filament 不太熟悉,请回顾以下内容。 Filament环境搭建绘制三角形绘制矩形绘制圆形绘制立方体 Filament 纹理坐标的 x、y 轴正方向分别朝右和朝上,其 y 轴正方向朝向与 OpenGL ES…

免费PHP完美运营的最新短视频打赏系统学习版

免费PHP完美运营的最新短视频打赏系统学习版 一、介绍 免费PHP完美运营的最新短视频打赏系统学习版,是一款基于PHP开发的打赏系统,具有强大的功能和稳定的性能。相比于市面上的其他打赏系统,它更加完善,几乎无bug,能…

PMP项目管理 - 进度管理

系列文章目录 系统架构设计 PMP项目管理 - 整合管理 PMP项目管理 - 范围管理 PMP项目管理 - 质量管理 PMP项目管理 - 采购管理 PMP项目管理 - 资源管理 PMP项目管理 - 风险管理 PMP项目管理 - 沟通管理 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞…

Could not resolve com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.28.

1、首先进入阿里云maven仓库,在搜索栏输入无法下载的依赖名称,查询现有版本号,可以看到这里有2.9.34。 2、在build.gradle(Project)的buildscript闭包下替换为阿里云maven仓库: maven { url https://www.jitpack.io } maven { u…

CentOs 安装MySQL

1、拉取安装包 wget --no-check-certificate dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm 成功拉取 2、安装 yum install mysql-community-release-el6-5.noarch.rpm 过程中可能需要你同意一些东西,y 即可 然后稍微检查一下 yum repolist enabled…

Java实现非对称加密【详解】

Java实现非对称加密 1. 简介2. 非对称加密算法--DH(密钥交换)3. 非对称加密算法--RSA非对称加密算法--EIGamal5. 总结6 案例6.1 案例16.2 案例2 1. 简介 公开密钥密码学(英语:Public-key cryptography)也称非对称式密…

Spring中的上下文工具你写的可能有bug

文章目录 前言功能第一种:ApplicationContext第二种方式:ApplicationContextAware第三种:BeanFactoryPostProcessor 源码第一种第二种第三种 前言 本篇是针对如何写一个比较好的spring工具的一个探讨。 功能 下面三种方式,你觉…

第1课 配置FFmpeg+OpenCV开发环境

一、配置开发环境 1.下载FFmpegOpenCV开发所用的SDK压缩包,并解压到E:\SDK下,解压后的路径应为:E:\SDK\ffmpeg-sdk\58\x86\dll及E:\SDK\opencv-sdk\340\x86\dll。 2.新建VC项目,名称为demo1,项目类弄为MFC应用程序&a…

Django 中集成 CKEditor 富文本编辑器详解

概要 在 Web 应用中,富文本编辑器是提高用户体验的重要组件之一。CKEditor 是一款流行的、功能丰富的富文本编辑器。在 Django 项目中集成 CKEditor 不仅可以提升内容编辑的灵活性,还能丰富用户的互动体验。本文将详细介绍如何在 Django 中集成和配置 C…

掌握函数式组件:迈向现代化前端开发的关键步骤(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【pynput】鼠标行为追踪并模拟

文章目录 前言基本思路安装依赖包实时鼠标捕获捕获鼠标位置捕获鼠标事件记录点击内容 效果图 利用本文内容从事的任何犯法行为和开发与本人无关,请理性利用技术服务大家,创建美好和谐的社会,让人们生活从繁琐中变得更加具有创造性&#xff01…

【SassVue】仿网易云播放器动画

简介 仿网易云播放动画 效果图&#xff08;效果图&#xff09; 最终成品效果 动画组件 src/components/musicPlay.vue <template><div class"music-play"><div></div><div></div><div></div></div> </te…

【JAVA】分布式链路追踪技术概论

目录 1.概述 2.基于日志的实现 2.1.实现思想 2.2.sleuth 2.2.可视化 3.基于agent的实现 4.联系作者 1.概述 当采用分布式架构后&#xff0c;一次请求会在多个服务之间流转&#xff0c;组成单次调用链的服务往往都分散在不同的服务器上。这就会带来一个问题&#xff1a;…

基于Kubernetes的jenkins上线

1、基于helm 部署jenkins 要求&#xff1a;当前集群配置了storageClass&#xff0c;并已指定默认的storageClass&#xff0c;一般情况下&#xff0c;创建的storageClass即为默认类 指定默认storageClass的方式 # 如果是新创建默认类&#xff1a; apiVersion: storage.k8s.io/v1…

全方位掌握卷积神经网络:理解原理 优化实践应用

计算机视觉CV的发展 检测任务 分类与检索 超分辨率重构 医学任务 无人驾驶 整体网络架构 卷积层和激活函数&#xff08;ReLU&#xff09;的组合是网络的核心组成部分 激活函数(ReLU&#xff09; 引入非线性&#xff0c;增强网络的表达能力。 卷积层 负责特征提取 池化层…

go语言初体验1--使用go install

当安装后go语言后。 尝试编写go程序。 当使用 go install 命令&#xff0c;报错。 go: go install requires a version when current directory is not in a moduleTry go install jvmgo\ch01latest to install the latest version通过查找资料。 用命令&#xff1a; go env …

数据库开发之图形化工具以及表操作的详细解析

2.3 图形化工具 2.3.1 介绍 前面我们讲解了DDL中关于数据库操作的SQL语句&#xff0c;在我们编写这些SQL时&#xff0c;都是在命令行当中完成的。大家在练习的时候应该也感受到了&#xff0c;在命令行当中来敲这些SQL语句很不方便&#xff0c;主要的原因有以下 3 点&#xff…

Centos安装vsftpd:centos配置vsftpd,ftp报200和227错误

一、centos下载安装vsftpd&#xff08;root权限&#xff09; 1、下载安装 yum -y install vsftpd 2、vsftpd的配置文件 /etc/vsftpd.conf 3、备份原来的配置文件 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup 4、修改配置文件如下&#xff1a;vi /etc/vsftpd.conf …