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版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
消息中间件 存储 Java
RabbitMQ 在微服务架构中的高级应用
【8月更文第28天】在微服务架构中,服务之间需要通过轻量级的通信机制进行交互。其中一种流行的解决方案是使用消息队列,如 RabbitMQ,来实现异步通信和解耦。本文将探讨如何利用 RabbitMQ 作为服务间通信的核心组件,并构建高效的事件驱动架构。
82 2
|
17天前
|
消息中间件 弹性计算 运维
云消息队列RabbitMQ 版架构优化评测
云消息队列RabbitMQ 版架构优化评测
33 6
|
2月前
|
消息中间件 存储 网络协议
消息中间件RabbitMQ---概述和概念 【一】
该文章提供了对消息中间件RabbitMQ的全面概述,包括其核心概念、工作原理以及与AMQP和JMS的关系。
消息中间件RabbitMQ---概述和概念 【一】
|
2月前
|
网络协议 Java 物联网
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
MQTT(EMQX) - SpringBoot 整合MQTT 连接池 Demo - 附源代码 + 在线客服聊天架构图
394 2
|
2月前
|
消息中间件 Java RocketMQ
微服务架构师的福音:深度解析Spring Cloud RocketMQ,打造高可靠消息驱动系统的不二之选!
【8月更文挑战第29天】Spring Cloud RocketMQ结合了Spring Cloud生态与RocketMQ消息中间件的优势,简化了RocketMQ在微服务中的集成,使开发者能更专注业务逻辑。通过配置依赖和连接信息,可轻松搭建消息生产和消费流程,支持消息过滤、转换及分布式事务等功能,确保微服务间解耦的同时,提升了系统的稳定性和效率。掌握其应用,有助于构建复杂分布式系统。
42 0
|
3月前
|
消息中间件 负载均衡 算法
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
84 2
|
3月前
|
消息中间件 NoSQL 关系型数据库
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
83 1
|
3月前
|
消息中间件 存储 RocketMQ
【RocketMQ系列十】RocketMQ的核心概念说明
【RocketMQ系列十】RocketMQ的核心概念说明
50 1
|
4月前
|
消息中间件 存储 中间件
【主流技术】聊一聊消息队列 RocketMQ 的基本结构与概念
2.6Broker 代理服务器(Broker)是消息中转角色,负责存储消息、转发消息。代理服务器在 RocketMQ 系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。 2.7Pull Consumer 拉取式消费(Pull Consumer)是 Consumer 消费的一种类型,也是默认的类型。下游应用系统通常主动调用 Consumer 的拉消息方法从 Broke r服务器拉消息,即主动权由下游应用控制。一旦获取了批量消息,应用就会启动消费过程。
|
3月前
|
消息中间件 存储 缓存
架构设计篇问题之消息队列(MQ)在微服务系统中问题如何解决
架构设计篇问题之消息队列(MQ)在微服务系统中问题如何解决