技术揭秘:RocketMQ 5.0云原生架构升级之路

简介: ——周新宇 阿里云云原生高级技术专家

image.png

RocketMQ5.0主要在以下四个方面进行了云原生的架构改造。

① 轻量级 SDK 基于云原生通信标准gRPC 开发了全新的轻量级 SDK 核心代码量降低 70% 左右。新的 SDK 采取无状态的消费模式,更易于集成,也易于弹性,与此前富客户端能够形成很好的优势互补。

② 无状态消息网关:在存储节点之上搭建了无状态计算集群,并通过 LB 进行服务暴露存储节点进行彻底分离,使其专注于核心的消息存储与高可用能力。计算和存储节点采用了分离部署的形态,能够独立进行扩展与弹性。

③ Leaderless高可用架构:推出了全新的 Leaderless 高可用架构,目前正与社区的 Dledger方案进行融合。新的高可用架构具备 store 节点身份对等Leaderless 化、去 ZK HA控节点等优势。同时支持灵活选择副本数同步自动升降级,能够做到秒级故障转移。

④ 云原生基础设施:可观测能力全面走向了云原生化,拥抱 OpenTelemetry标准部署架构也演进至 Kubernetes能够充分利用售卖区的弹性资源能力。

image.png

新的 SDK 与富客户端能够形成优势互补,更加易于被集成,主要在以下四个方面做了重大的改进。

第一,新的 SDK引入了全新极简 API ,整套API采用不可变的设计语义,拥有完善的错误处理机制,多个语言的 SDK API 层面也进行了对齐。同时引入了全新的SimpleConsumer 形态,能够支持按消息模型进行消费。

第二,通信层采用 gRPC拥抱云原生的通信标准使服务更易于被集成。多语言 SDK在通信层的代码也可以基于gRPC快速生成,方便社区快速开发多语言原生的SDK

第三,SDK 采取轻量级的实现,采用无状态的消费模式,能够大幅降低客户端的实现复杂度客户端更轻量采用应用也更容易被 Serverless 化、 Mesh 化。

第四,云原生可观测性方面,客户端实现了 OpenTelemetry标准,支持导出 Metrics Tracing数据。

image.png

RocketMQ 5.0 引入了无状态的消费模型,这是在队列模型之上的一种消息模型。在 RocketMQ 4.0 时代,RocketMQ的消费只能采取队列模型队列模型是与存储模型一致的消费模型,消费者按照存储队列进行负载均衡和消息拉取。模式非常适合高速批量拉取,适合对单条消息状态不敏感的场景,比如计算场景。

但在业务消息领域,该模式缺乏对单条消息的治理能力以及状态管理能力。RocketMQ 5.0 引入了Pop机制,巧妙地在队列模型之上支持了消息模型,这并不是一种替换关系,而是鱼和熊兼得的模式。在消息模型中,业务可以只关心消息,而无需关心队列,能够做到单条消息在 API 级别的消费重试、修改不可见时间以及删除等语义。无状态的Pop 机制配合 RocketMQ 5.0 的无状态计算集群,使得整个数据链路都能实现无状态,包括客户端的无状态连接无状态以及消费无状态。

image.png

RocketMQ 4.0 在可观测性方面做了大量业务创新推出了业界首个可视化全生命周期的消息轨迹系统,提供了丰富的消息查询、消息下载、轨迹追踪的能力,助力解决分布式环境中的可观测性问题。在云原生时代,我们将这些能力推向了标准化。

首先Metrics 层面,提供了Dashboard的大盘,整个大盘采取Prometheus标准数据格式,并利用 Grafana 进行展示。在指标方面也进行了丰富,包含消息量、堆积量、各个阶段耗时等指标。每一个指标从实例topic 消费group ID 等多维度做了聚合和展示。同时为用户提供了最佳实践的模板,并支持持续迭代的更新。

Tracing层面,将 RocketMQ 4.0 的消息轨迹进行了标准化定义,并将标准合并至开源的OpenTelemetry标准中,规范和丰富了 messaging 领域的Tracing定义。Tracing数据做了消息领域的定制化展示,按照消息维度重新组织抽象span请求数据,能够展示一对多的消费多次消费信息非常直观以及方便理解。另外Tracing数据可以衔接上下游,支持将完整的同步调用链路与消息的异步链路进行整合,提供更全局的可观性视图。

RocketMQ 5.0也特别重视 Logging 的标准化新的 SDK error code message error level 做了标准化定义,同时语言 SDK 中进行了严格对齐。

image.png

IaaS 层面,从 on ECS 的部署架构迁移至on Kubernetes的部署架构,使得 RocketMQ 5.0 能够充分利用云的弹新能力,撬动云的计算、存储和网络的池化资源,满足用户的各类弹需求。

在计算层面,容器服务 ACK 可以帮助 RocketMQ 5.0 充分利用 ECS 的池化资源,借助弹性资源池和 HPA两项关键技术,能够支持计算能力的快速Serverless 化。

在网络层面,RocketMQ 5.0 的网络形态做了完整适配,支持多种私网的网络类型以及公网网络随开随用,兼具安全和方便。同时基于阿里云的 CEN 组网能力构建了全球互通的消息网络。

在存储方面,推出了二级存储能力,能充分利用 ESSD 以及 OSS 存储的弹能力存储计费也走向了量计费,用户也可以自定义存储时长,将消息变为数据资产,同时二级存储天然具备冷热分离的能力,能够为用户提供一致的冷SLA

image.png

在业务层面, RocketMQ 5.0 也从消息走向了世界。在 RocketMQ 之上构建了一款全新的云产品EventBridge它是阿里云在事件驱动架构方面的最新实践,开源阿帕奇 MQ 社区。

EventBridge构建在容器服务之上,并利用 RocketMQ作为核心的事件存储引擎。在 RocketMQ之上有跨地域的connect 集群包含 schema 事件规则、事件管理、事件路由过滤转换等核心能力。在 connect 集群之上是一层事件网关,支持用户以 OpenAPI 官方 SDKCloudEvents SDK Webhook 等方式进行接入。

EventBridge事件驱动引擎连接了大量事件云和事件目标。其中事件云包括阿里云的管控事件、阿里云的数据类事件,也包括自定义应用、 SaaS 应用以及自建数据平台等事件目标包括计算型、分析型、存储型以及通知型的目标,比如函数计算、消息服务、App网关、短信等。

在功能价值层面,EventBridge有四块核心能力

① 能够大幅度减少用户的开发成本,用户无需额外开发即可轻松实现事件驱动架构。

② 支持原生的 CloudEvents拥抱 cncf 社区,能够无缝对接社区 SDK通过标准的协议统一了阿里云的事件规范。

③ 支持事件 schema 的自动探测和校验,source target schema 代码绑定等。

④ 全球事件日益互通,EventBridge组建了跨地域跨账户的事件网络,支持跨云跨数据中心的事件路由。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4天前
|
运维 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【4月更文挑战第21天】 随着企业逐渐转向数字化运营,云原生技术以其独特的优势成为了推动转型的核心力量。本文将探讨云原生技术如何通过提供灵活、可扩展的解决方案来帮助企业应对不断变化的市场需求,同时确保系统的可靠性和安全性。我们将深入分析容器化、微服务架构、持续集成与持续部署(CI/CD)等关键技术,并讨论它们如何共同作用于企业的云原生旅程。
19 5
|
2天前
|
Cloud Native Serverless 开发者
阿里云助力开发者创新:探索云原生技术的新境界
阿里云开发者社区推动云原生技术发展,提供丰富产品(如容器服务、Serverless、微服务架构、服务网格)与学习平台,助力企业数字化转型。开发者在此探索实践,共享资源,参与技术活动,共同创新,共创云原生技术新篇章。一起加入,开启精彩旅程!
45 2
|
4天前
|
Cloud Native API 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第21天】 随着企业加速其数字化转型的步伐,云原生技术已迅速成为推动创新和实现敏捷性的基石。本文深入探讨了云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及声明式API。通过分析这些技术的协同效应,揭示了它们如何共同促进系统的可伸缩性、弹性和维护性,进而支持企业在不断变化的市场环境中保持竞争力。
10 1
|
4天前
|
敏捷开发 Cloud Native 持续交付
构建未来:云原生架构的进化之路
【4月更文挑战第21天】随着数字化转型的深入,企业对IT基础设施的要求日益提高。云原生技术以其灵活性、可扩展性和敏捷性成为推动创新的重要力量。本文将探讨云原生架构的核心组件,分析其如何助力企业实现快速迭代和高效运营,并预测云原生技术的发展趋势。
|
7天前
|
Cloud Native Devops 持续交付
构建未来:云原生技术在企业数字化转型中的关键角色
【4月更文挑战第18天】 随着企业加速其数字化转型的步伐,云原生技术已成为推动创新与维护企业敏捷性的基石。本文将深入探讨云原生的概念、核心技术以及如何在企业环境中实现有效部署。我们将剖析容器化、微服务架构、DevOps和持续集成/持续部署(CI/CD)等关键技术,并讨论它们如何共同塑造一个灵活、可扩展且高效的云环境。文章还将展示通过采用云原生实践,企业能够如何优化资源利用、加快产品上市时间,并提供一流的客户体验。
|
7天前
|
Cloud Native 持续交付 云计算
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第18天】 随着企业加速迈向数字化,云原生架构成为推动创新与效率的催化剂。本文深入探讨了云原生技术如何助力企业实现敏捷开发、自动化运维和无缝可扩展性,以及它如何塑造着云计算的未来。我们将通过具体案例分析,揭示云原生架构在处理复杂系统时的灵活性和可靠性,并展望其对业务连续性和安全性的积极影响。
13 1
|
10天前
|
Cloud Native 持续交付 API
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第15天】 随着企业加速其数字化转型的步伐,云原生架构已经成为推动创新和实现敏捷性的关键技术。本文深入探讨了云原生技术如何助力企业在竞争激烈的市场中保持领先地位,包括它的核心组件、实施策略以及面临的挑战。通过实际案例分析,我们揭示了企业如何利用云原生架构来优化资源使用、提高开发效率和加强系统的稳定性与安全性。
|
10天前
|
消息中间件 存储 数据库
RabbitMQ入门指南(二):架构和管理控制台的使用
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容。
31 0
RabbitMQ入门指南(二):架构和管理控制台的使用
|
11天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【4月更文挑战第14天】 随着企业加速迈向数字化,云原生架构成为支撑其转型战略的核心技术之一。该文章深入探讨了云原生技术如何通过提供灵活、可扩展的解决方案来满足现代业务需求。分析了容器化、微服务、持续集成和持续部署(CI/CD)以及DevOps文化对于构建和维护高效、可靠的云基础设施的重要性。同时,讨论了企业在采用云原生架构时可能面临的挑战,并提出相应的策略以克服这些障碍。
|
消息中间件 算法 Java
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
609 1
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!