RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景
2024.02.17 17:26浏览量:3简介:RocketMQ 5.0 架构采用了云原生技术,实现了高可用性、高性能和低成本。本文将深入解析 RocketMQ 5.0 的架构,并探讨如何基于云原生架构支撑多元化场景。
RocketMQ 5.0 作为云原生的消息中间件,旨在为企业提供高可用、高性能、低成本的解决方案。在架构设计上,RocketMQ 5.0 采用了云原生技术,使得其能够更好地适应多元化场景的需求。
RocketMQ 5.0 的架构从上往下可分为 SDK、NameServer、Proxy 与 Store 层。SDK 层包括 RocketMQ 的 SDK,用户基于 RocketMQ 自身的领域模型来使用 SDK。除了 RocketMQ 自身的 SDK 之外,还包括细分领域场景的业界标准 SDK,比如面向事件驱动的场景,RocketMQ 5.0 支持 CloudEvents 的 SDK;面向 IoT 的场景,RocketMQ 支持物联网 MQTT 协议的 SDK;为了方便更多传统应用迁移到 RocketMQ,还支持了 AMQP 协议。
在 NameServer 层,它承担服务发现与负载均衡的职责。通过 NameServer,客户端能获取 Topic 的数据分片与服务地址,链接消息服务器进行消息收发。
消息服务包含计算层 Proxy 与存储层 RocketMQ Store。RocketMQ 5.0 是存算分离的架构,这里的存算分离强调的主要是模块和职责的分离。Proxy 与 RocketMQ Store 面向不同的业务场景可以合并部署,也可以分开部署。计算层 Proxy 主要承载消息的上层业务逻辑,尤其是面向多场景、多协议的支持,比如承载 CloudEvents、MQTT、AMQP 的领域模型的实现逻辑与协议转换。面向不同的业务负载,可将 Proxy 分离部署,独立弹性,比如在物联网场景,Proxy 层独立部署可以面向海量物联网设备连接数进行弹性伸缩,与存储流量扩缩容解耦。RocketMQ Store 层则负责核心的消息存储,包括基于 Commitlog 的存储引擎、多元索引、多副本技术与云存储集成扩展。消息系统的状态全部下沉到 RocketMQ Store,其组件全部实现无状态化。
结合广泛的实际业务场景,RocketMQ 5.0 作为生于云、长于云的全新的架构,经过不断探索实践,RocketMQ 5.0 主要具备以下特性:
- 高 SLA、低成本:与云一致的可用性、高性能、低成本;
- 可调度:任意组件的重塑与组建适应多样性场景;
- 可扩展:开放的丰富生态;
- 可伸缩性:极致自动化扩容/缩容;
- 标准化:社区标准,符合行业标准。
RocketMQ 5.0 的轻量级 SDK 提供轻量级的客户端,使之具备良好的集成与被集成能力。同时,将负载均衡、逻辑位点管理这些复杂逻辑都放到服务端,实现无状态化。在协议选择方面,除了原有协议之外,全面支持云原生通信标准 gRPC 协议。同时,节点之间的松散耦合,任意服务节点可以随时进行迁移。
通过以上分析可以看出,RocketMQ 5.0 的架构设计充分考虑了云原生技术的优势,并针对多元化场景的需求进行了优化。这种架构不仅使得 RocketMQ 5.0 在可用性、性能和成本方面具有优势,同时也具备了良好的可调度性、可扩展性和可伸缩性。这些特性使得 RocketMQ 5.0 能够更好地满足企业对于消息中间件的需求,成为企业数字化转型的重要支撑。
发表评论
登录后可评论,请前往 登录 或 注册