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
相关文章
|
10月前
|
消息中间件 大数据 关系型数据库
RocketMQ实战—3.基于RocketMQ升级订单系统架构
本文主要介绍了基于MQ实现订单系统核心流程的异步化改造、基于MQ实现订单系统和第三方系统的解耦、基于MQ实现将订单数据同步给大数据团队、秒杀系统的技术难点以及秒杀商详页的架构设计和基于MQ实现秒杀系统的异步化架构。
707 64
RocketMQ实战—3.基于RocketMQ升级订单系统架构
|
10月前
|
人工智能 自然语言处理 数据可视化
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
|
10月前
|
消息中间件 存储 设计模式
RocketMQ原理—5.高可用+高并发+高性能架构
本文主要从高可用架构、高并发架构、高性能架构三个方面来介绍RocketMQ的原理。
3156 21
RocketMQ原理—5.高可用+高并发+高性能架构
|
11月前
|
消息中间件 人工智能 自然语言处理
基于 RocketMQ 事件驱动架构的 AI 应用实践
基于 RocketMQ 事件驱动架构的 AI 应用实践
424 2
|
11月前
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
267 0
|
4月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
417 3