RocketMQ 核心架构和概念|学习笔记

简介: 快速学习 RocketMQ 核心架构和概念

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第四阶段RocketMQ 核心架构和概念】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/686/detail/11904


RocketMQ 核心架构和概念


1、画图解释

安装过程只要拿到对应的安装包进行解压缩启动主要启动两个组建,一个叫 NameServer,一个叫 Broker,以画图的形式解释两个概念并且描述 RocketMQ 内部是如何工作的

image.png

首先画一下消息生产者和消费者,生产者的作用是生产和投递消息,消费者是从 MQ 接收并且消费消息。

消息生产者和消费者是通过MQ 进行沟通,把 MQ 放在中间,这就是 RocketMQ,在 RocketMQ中有两个核心的组件,第一个叫 Broker,Broker 是整个 RocketMQ 的核心组件,它的作用是用来接受投递,中间还有存储消息Broker 会从消息生产者接收消息并且存储起来,然后向消息消费者进行消息的投递,这是第一个组件。还有一个组件叫 NameServer,它的作用是来管理 Brocker。

image.png

消息的传递流程,首先消息生产者将消息生产出来以后,要去向Broker 投递消息,目前不知道 Broker 在哪里,如果想投递消息必须通过 NameServer 去获取 Broker 的地址,也意味它首先是跟它打交道,会消息生产者获取 Broker,获取完毕以后就知道 Broker 的位置,接下来会将消息传递给 Broker,右侧同样消息消费者想要消费消息也是需要先从 NameServer 中获取 Broker,从里面去获取相关的 Broker 信息,Broker 信息是由 Broker 核心组件提前注册到 NameServer 里面的,中间写上 向 NameServer 提前注册自身信息,消费者可以从 Broker 里面获取消息进行消费。四个核心组件已经讲明白,两个是自己的,两个是 MQ 的。

消息在 Broker 中的存储,在 Broker 里面有一个一个的队列称为叫 message queue。massage queue 在逻辑上进行了划分,划分出来的叫做一个一个的主题 topic 在逻辑上进行的分类号,右边也是一个 topic。

image.png

消息生产者比喻成寄件人,消息消费者对应的是收件人,中间 Broker相当于邮递员,上面相当于邮局管理邮递员,需要从邮局获取邮递员具体信息,NameServer 相当于邮递员的邮箱,topic 相当于是地区的划分比如北京的、山东邮件地址不一样,每个 massage queue 相当于是一封封的邮件,在 message 里面还有更加详细的概念叫message,是具体的消息对象可以认为是邮件里面的文字内容。

2.官方概念

image.png

如上图所示,整体可以分成4个角色,分别是:NameServer,Broker,ProducerConsumer.

(1)Broker(邮递员)

Broker  RocketMQ 的核心,负责消息的接收,存储,投递等功能

(2)NameServer(邮局)

消息队列的协调者,Broker 向它注册路由信息,同时 Producer 和Consumer 向其获取路由信息

(3)Producer(寄件人)

消息的生产者,需要从 NameServer 获取 Broker 信息,然后与Broker 建立连接,向 Broker 发送消息

(4)Consumer(收件人)

消息的消费者,需要从 NameServer 获取 Broker 信息,然后与Broker 建立连接,从 Broker 获取消息

(5)Topic(地区)

用来区分不同类型的消息,发送和接收消息前都需要先创建 Topic,针对 Topic 来发送和接收消息

(6)Message Queue(邮件)

为了提高性能和吞吐量,引入了 MessageQueue,一个 Topic 可以设置一个或多个 Message Queue,这样消息就可以并行往各个Message Queue 发送消息,消费者也可以并行的从多个MessageQueue 读取消息

(7)Message(具体文字)

Message 是消息的载体。

(8)Producer Group

生产者组,简单来说就是多个发送同一类消息的生产者称之为一个生产者组。

(9)Consumer Group

消费者组,和生产者类似,消费同一类消息的多个 consumer 实例组成一个消费者组。

相关实践学习
快速体验阿里云云消息队列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实现秒杀系统的异步化架构。
452 64
RocketMQ实战—3.基于RocketMQ升级订单系统架构
|
4月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
2335 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
6月前
|
消息中间件 存储 设计模式
RocketMQ原理—5.高可用+高并发+高性能架构
本文主要从高可用架构、高并发架构、高性能架构三个方面来介绍RocketMQ的原理。
1540 21
RocketMQ原理—5.高可用+高并发+高性能架构
|
12月前
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
10月前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
686 81
|
7月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。
|
7月前
|
消息中间件 人工智能 自然语言处理
基于 RocketMQ 事件驱动架构的 AI 应用实践
基于 RocketMQ 事件驱动架构的 AI 应用实践
195 2
|
7月前
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
127 0
|
消息中间件 算法 Java
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
1000 1
弥补延时消息的不足,RocketMQ 基于时间轮算法实现了定时消息!
|
消息中间件 uml RocketMQ
3 张图带你彻底理解 RocketMQ 事务消息
3 张图带你彻底理解 RocketMQ 事务消息
67989 2
3 张图带你彻底理解 RocketMQ 事务消息