RocketMQ 5.0 vs 4.9.X 图解架构

简介: 2图胜万言

一、RocketMQ 4.9.X架构

image.png在4.9.X中每个组件和组件之间的通信简单说明如下:


组件和数据流

说明

Namesrv

无状态服务,保存Topic路由信息Topic路由=topic-queue-broker

Broker

有状态服务,处理计算和存储。计算 = 生产者请求,消费者请求,管理请求,Broker系统服务(比如索引构建服务,消息过期服务)存储  = 消息存储,索引存储

Broker -> Namesrv

Broker定期把Broker信息+当前Broker中的Topic信息上报Namesrv

生产者

生产消息

生产者<-> Namesrv

生产者从Namesrv获取Topic路由信息, 包含Broker IP。

生产者<-> Broker

生产者通过Topic路由信息,把消息直接发送给Broker生产者定期和Broker心跳,上报当前生产者实例信息

消费者

消费消息

消费者<-> Namesrv

1. 消费者从Namesrv获取Topic路由信息, 包含Broker IP

消费者 <-> Broker

消费者通过Topic路由信息,从指定Broker中拉取消息消费消费者定期和Broker心跳,上报当前消费者实例信息


二、RocketMQ 5.0.0 架构


image.png

在5.0.0 中每个组件和组件之间的通信简单说明如下:

组件和数据流
说明
Namesrv

无状态服务,保存Topic路由信

Topic路由=topic-queue-broker。


在5.0.0时,Namesrv进程中可以嵌入Controller模块。

若设置enableControllerInNamesrv=true,在Namesrv进程中嵌入启动一个Controller实例

Broker

有状态服务,处理计算和存储。

计算 = 生产者请求,消费者请求,管理请求,Broker系统服务(比如索引构建服务,消息过期服务)

存储  = 消息存储,索引存储


在5.0.0时, Broker支持主从切换,Broker的角色包含:master,slave,learner。

若设置asyncLearner=true,则Broker为learner,只同步数据, 不参与选举master。

Broker -> Namesrv
Broker定期把Broker信息+当前Broker中的Topic信息上报Namesrv
Remoting生产者
生产消息
Remoting生产者<-> Namesrv

生产者从Namesrv获取Topic路由信息, 包含

Broker IP。

Remoting生产者<-> Broker
  1. 生产者通过Topic路由信息,把消息直接发送给Broker
  2. 生产者定期和Broker心跳,上报当前生产者实例信息
Remoting消费者 消费消息
Remoting消费者<-> Namesrv

1. 消费者从Namesrv获取Topic路由信息, 包含

Broker IP

Remoting消费者 <-> Broker
  1. 消费者通过Topic路由信息,从指定Broker中拉取消息消费
  2. 消费者定期和Broker心跳,上报当前消费者实例信息

5.0.0新增模块

Controller(控制器)

和Kafka Controller类似,在RocketMQ中负责Broker Master的选举和通知Broker

5.0.0新增模块

Broker <-> Controller

  1.  Broker定期把Broker信息
    上报Controller
  2. Broker同步副本状态
  3. Controller选举新的Broker Master后,通知全部Broker

5.0.0新增模块

Proxy

无状态服务,新客户端通过Grpc接口访问Proxy进行收发消息。

社区正在讨论支持Remoting协议。


Proxy中支持嵌入Broker。

若设置proxyMode=LOCAL,则会在Proxy进程中启动一个Broker实例。

5.0.0新增模块

Proxy <-> Broker

Proxy通过Remoting协议和Broker通信,可以把Proxy当作一个Remoting的Client。

5.0.0新增模块

新Client

新客户端,支持生产、消费、管理功能。目前支持Grpc协议

5.0.0新增模块

新Client <-> Proxy

新客户端访问Proxy进行收发消息,管理


相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
6月前
|
消息中间件 大数据 关系型数据库
RocketMQ实战—3.基于RocketMQ升级订单系统架构
本文主要介绍了基于MQ实现订单系统核心流程的异步化改造、基于MQ实现订单系统和第三方系统的解耦、基于MQ实现将订单数据同步给大数据团队、秒杀系统的技术难点以及秒杀商详页的架构设计和基于MQ实现秒杀系统的异步化架构。
485 64
RocketMQ实战—3.基于RocketMQ升级订单系统架构
|
6月前
|
人工智能 自然语言处理 数据可视化
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
|
4月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
2740 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
6月前
|
消息中间件 存储 设计模式
RocketMQ原理—5.高可用+高并发+高性能架构
本文主要从高可用架构、高并发架构、高性能架构三个方面来介绍RocketMQ的原理。
1813 21
RocketMQ原理—5.高可用+高并发+高性能架构
|
7月前
|
消息中间件 人工智能 自然语言处理
基于 RocketMQ 事件驱动架构的 AI 应用实践
基于 RocketMQ 事件驱动架构的 AI 应用实践
212 2
|
7月前
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
139 0
|
3月前
|
消息中间件 数据管理 Serverless
阿里云消息队列 Apache RocketMQ 创新论文入选顶会 ACM FSE 2025
阿里云消息团队基于 Apache RocketMQ 构建 Serverless 消息系统,适配多种主流消息协议(如 RabbitMQ、MQTT 和 Kafka),成功解决了传统中间件在可伸缩性、成本及元数据管理等方面的难题,并据此实现 ApsaraMQ 全系列产品 Serverless 化,助力企业提效降本。
|
1月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
126 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
|
12月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
787 104
|
12月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
307 111
下一篇
oss教程