RocketMQ 5.0 vs 4.9.X 图解架构对比
本文作者:李伟,Apache RocketMQ Committer,RocketMQ Python客户端项目Owner ,Apache Doris Contributor,腾讯云数据库开发工程师。
01 RocketMQ 4.9.X架构
在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 | 消费者从Namesrv获取Topic路由信息, 包含Broker IP |
| 消费者 <-> Broker | 消费者通过Topic路由信息,从指定Broker中拉取消息消费消费者定期和Broker心跳,上报当前消费者实例信息 |
1、生产者通过Topic路由信息,把消息直接发送给Broker。
2、生产者定期和Broker心跳,上报当前生产者实例信息。
消费者消费消息消费者<-> Namesrv
1、消费者从Namesrv获取Topic路由信息, 包含
Broker IP消费者 <-> Broker 。
- 消费者通过Topic路由信息,从指定Broker中拉取消息消费。
- 消费者定期和Broker心跳,上报当前消费者实例信息。
02 RocketMQ 5.0.0 架构
在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 | 产者通过Topic路由信息,把消息直接发送给Broker生产者定期和Broker心跳,上报当前生产者实例信息 |
| Remoting消费者 | 消费消息 |
| Remoting消费者<-> Namesrv | 消费者从Namesrv获取Topic路由信息, 包含Broker IP |
| Remoting消费者 <-> Broker | 消费者通过Topic路由信息,从指定Broker中拉取消息消费消费者定期和Broker心跳,上报当前消费者实例信息 |
| 5.0.0新增模块Controller(控制器) | 和Kafka Controller类似,在RocketMQ中负责Broker Master的选举和通知Broker |
| 5.0.0新增模块Broker <-> Controller | Broker定期把Broker信息上报ControllerBroker同步副本状态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进行收发消息,管理 |
1、生产者通过Topic路由信息,把消息直接发送给Broker。
2、生产者定期和Broker心跳,上报当前生产者实例信息。
Remoting消费者消费消息Remoting消费者<-> Namesrv
1、消费者从Namesrv获取Topic路由信息, 包含Broker IPRemoting消费者 <-> Broker 。
- 消费者通过Topic路由信息,从指定Broker中拉取消息消费。
- 消费者定期和Broker心跳,上报当前消费者实例信息。
5.0.0新增模块
Controller(控制器)和Kafka Controller类似,在RocketMQ中负责Broker Master的选举和通知Broker 。
5.0.0新增模块
Broker <-> Controller
- Broker定期把Broker信息上报Controller
- Broker同步副本状态
- Controller选举新的Broker Master后,通知全部Broker
5.0.0新增模块
Proxy无状态服务,新客户端通过Grpc接口访问Proxy进行收发消息。
社区正在讨论支持Remoting协议。
Proxy中支持嵌入Broker。
若设置proxyMode=LOCAL,则会在Proxy进程中启动一个Broker实例。
5.0.0新增模块
Proxy <-> BrokerProxy
通过Remoting协议和Broker通信,可以把Proxy当作一个Remoting的Client。
5.0.0新增模块
新Client新客户端,支持生产、消费、管理功能。目前支持Grpc协议
5.0.0新增模块
新Client <-> Proxy新客户端访问Proxy进行收发消息,管理。
RocketMQ 5.0 vs 4.9.X 图解架构对比的更多相关文章
- VMware vSphere6.0 服务器虚拟化部署安装图解(最全,最详细)-搭建的所有步骤
VMware vSphere6.0 服务器虚拟化部署安装图解 一 .VMware vSphere部署的前期规划要点 1.vSphere的优点 (略) 2如何利用现在的设备架构虚拟化环境 在虚拟化过程中 ...
- RocketMQ 5.0 POP 消费模式探秘
作者:凯易&耘田 审核校对:白玙 编辑&排版:雯燕 前言:随着 RocketMQ 5.0 preview 的发布,5.0 的重大特性逐步与大家见面.POP Consumer 作为 5. ...
- 基于云基础设施快速部署 RocketMQ 5.0 集群
本文作者:蔡高扬,Apache RocketMQ Committer, 阿里云智能技术专家. 背景 上图左侧为 RocketMQ 4.x版本集群,属于非切换架构.NameServer 作为无状态节点可 ...
- Apache RocketMQ 5.0 笔记
RocketMQ 5.0:云原生"消息.事件.流"实时数据处理平台,覆盖云边端一体化数据处理场景. 核心特性 云原生:生与云,长与云,无限弹性扩缩,K8s友好 高吞吐:万亿级吞吐保 ...
- 01.从0实现一个JVM语言之架构总览
00.一个JVM语言的诞生过程 文章集合以及项目展望 源码github地址 这一篇将是架构总览, 将自顶向下地叙述自制编译器的要素; 文章目录 01.从0实现一个JVM语言之架构总览 架构总览目前完成 ...
- solr6.5.0版本(Windows安装图解)
此教程为solr6.5.0安装,自己制作,希望可以帮到你们.
- ActionMQ5.8.0 JMS实例 手把手详细图解
出自:http://blog.csdn.net/tongjie008/article/details/40687087 ActionMQ 是开源的JMS实现 1.下载ActiveMQ 去官方网站下载: ...
- VMware vSphere6.0 服务器虚拟化部署安装图解
一 VMware vSphere部署的前期规划要点 1 vSphere的优点 (略) 2 如何利用现在的设备架构虚拟化环境 在虚拟化过程中,用户大多会考虑目前现有的服务器.存储.交换机等基础设备是否可 ...
- MyEclipse10.0的破解过程详细图解
1 首先下载破解软件包:http://pan.baidu.com/s/1pLB6xEb 并解压: 2 按照百度经验操作即可http://jingyan.baidu.com/article/cbf0e5 ...
- QT5.1.0,QT4.8.0以及VC2010、VC2012的测试对比
QT5.1.0,QT4.8.0以及VC2010.VC2012的交叉测试对比. 测试1: 用VC2012静态编译了QT5.1.0. 编译速度很慢,生成完成后,用VC2012+QT5.1.0进行程序生成, ...
随机推荐
- Fastjson漏洞+复现
1.漏洞介绍 FastJson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性.通过查找代码中相关的方法,即可构造出一些恶意利用链. ...
- 【Scala】思维导图
思维导图:http://naotu.baidu.com/file/8ac705df572cd2f131aff5f0ed9c4c88?token=871f7d35671c6287 Scala 算术运算 ...
- 1.5 HDFS分布式文件系统-hadoop-最全最完整的保姆级的java大数据学习资料
目录 1.5 HDFS分布式文件系统 1.5.1 HDFS 简介 1.5.2 HDFS的重要概念 1.5.3 HDFS架构 1.5 HDFS分布式文件系统 1.5.1 HDFS 简介 HDFS(全称: ...
- OpenVINO计算机视觉模型加速
OpenVINO计算机视觉模型加速 OpenVINO介绍 计算机视觉部署框架,支持多种边缘硬件平台 Intel开发并开源使用的计算机视觉库 支持多个场景视觉任务场景的快速演示 四个主要模块: 1.开发 ...
- Java7提供的Fork/Join框架实现高并发程序,你会使用吗?
摘要:Fork/Join框架位于J.U.C(java.util.concurrent)中,是Java7中提供的用于执行并行任务的框架,其可以将大任务分割成若干个小任务,最终汇总每个小任务的结果后得到最 ...
- LeetCode HOT 100:子集(简单易懂的回溯)
题目:78. 子集 题目描述: 给你一个整数数组,数组中元素互不相同.返回数组中所有可能的子集,且子集不能重复! 什么是子集?举个例子:原数组[1, 2, 3],[].[1].[1, 2].[1, 3 ...
- 侦察工具——Httrack
前言 web渗透学习笔记,实验环境为Metasploitable靶机上的DVWA.此随笔介绍Web渗透侦察工具Httrack Httrack 简介 Httrack能够克隆拷贝目标网站上的所有可访问.可 ...
- 可视化—AntV G6 高亮相邻节点的两种方式
目录 内置的高亮节点 自定义高亮 自定义高亮时保持原始颜色 总结 案例完整代码 通过官方文档,可知高亮相邻节点分为两种方法,文档描述并不是很清楚,对刚接触这个库的小白并不是很友好,慢慢总结慢慢来吧 内 ...
- [数据结构]Hash Table(哈希表)
Hash Table基本概念 散列函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,记为Hash(key)=Addr. 散列函数可能会把两个或者两个以上的关键字映射到同一个地址,称这种情况为 ...
- 《机器人SLAM导航核心技术与实战》第1季:第4章_机器人传感器
<机器人SLAM导航核心技术与实战>第1季:第4章_机器人传感器 视频讲解 [第1季]4.第4章_机器人传感器-视频讲解 [第1季]4.1.第4章_机器人传感器_惯性测量单元-视频讲解 [ ...