开发者学堂课程【RocketMQ知识精讲与项目实战(第一阶段):RocketMQ各角色介绍】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/702/detail/12365
RocketMQ各角色介绍
内容介绍:
一、各角色介绍
二、各角色在集群搭建中的作用
三、集群搭建中角色循环流程图
一、各角色介绍
(1) Producer:消息的发送者
举例:发信者
(2) Consumer:消息接收者
举例:收信者
(3) Broker:暂存和传输消息
举例:邮局
(4) NameServer:管理 Broker
举例:各个邮局的管理机构
(5) Topic:区分消息的种类
一个发送者可以发送消息给一个或者多个 Topic;
一个消息的接收者可以订阅一个或者多个 Topic 消息
(6) Message Queue:相当于是 Topic 的分区
用于并行发送和接收消息
二、各角色在集群搭建中的作用
(1) 集群的组成
这个图是由四个部分组成的,左边部分是消息的发送方,右边是消息的消费方,中
间是 rocket MQ 的 broker,上面是 name serve。
(2) 角色在流程中的功能介绍
这个图上面是由四个部分组成的,producer 它主要是用来发送消息的,在再进行消息发送的时候,这个消息不是首先发送到 brokre。broker 主要就是来去接受生产者发送的消息,
生产者要去询问 name server,首先找 name server,让 name server 给它分配broke r的一个地址,再去找 broker 发送消息。即 name summer 呢,其实是broker的管理者。
(3) name server管理broker的流程
它怎么样知道 broker 当前的一个信息呢?靠 broker 上报信息到 broker,大家会看到在broker 和 name server 中间有条线,broker 要主动上报自己的状态信息到name server。
(4)消息的消费者
消息的消费者,它要去消费这个消息,这个消息在 broker,生产者把消息发送到那里,要从 broker 当中去消费吧,主从之间,可以进行复制,对于消费者,要去找博客消费消息,首先得要知道要找哪一个博客去消费,连上 name server,
去询问 name server 去找哪一个博客,给一个地址。这就是它为什么要连上name server 的一个原因,通过这个图,我们简单的来看集群当中各个节点它们之间的作用,总体来讲,name server 是一个很核心很重要的一个角色,它是来去管理
broker。
生产者主要的职责是发送消息,它在发送消息的时候,首先要去询问 name server,给它 broker 的地址,把这个消息发送到 broker,broker 主要的职责是去接收消息,存储消息,consumer 的职责是主要就是来去消费消息的,但是在消费的时候呢,它也要先去询问 name server,去获得一个 broker 的一个地址,去找
broker,去进行一个消息的消费。
(5)各个角色的功能的举例
张三要给李四发一封信,张三就是 producer,就是消息的发送者,李四最终要收到
这个信件,它就是 consumer,张三它要给李四发一封信,它怎么发呢?
它能直接把这个信交到李四的手上吗?通常是把它投递到邮局,邮局就相当于broker,它就相当于是 broker,那么我们说这个城市当中,它的邮局有很多个。需要一个邮局的管理机构,那 name server 就相当于是邮局的管理机构。name server 主要是来管理 broker。
上面还有两个角色,一个是 topic,一个是 Message queue,在发送一个信件的时候,一般有一个分类,比如说现在发一个求职信还发的是一个问候信,message 的类别,就是 topic ,topic 翻译过来呢,是什么种类的意思,指的就是信,对于消息生产者、消息发送者,可以发送一个或多个类别 topic 的消息,一个消息的消费者也可以去消费一个或者是多个 topic 的消息,topic 它的职责就是进行消息分类,Message queen 和 topic 密切相关,Message queue 是在 topic 内部相当于是进行了一个大类下面一个小类的区分,相当于是topic的一个分区,可以使用它去进行消息的发送和接收的处理。message queen 的一个作用其实就相当于是一个子分类。
三、集群搭建中角色循环流程图