在下载安装好RocketMQ后,要使用RocketMQ就得启动Name Server和Broker,那么这Name Server和Broker到底是什么?
先看下RocketMQ的简单结构图,如下:
从以上架构图可以了解到,RocketMQ大致有4种角色,Producer,Broker,NameServer,Consumer。
分别解释下4种角色的作用,如下:
-
Broker
Broker负责消息的接收,存储,投递等功能,它是RocketMQ的核心。 -
NameServer
消息队列的协调者,Broker向它注册路由信息,同时Producer和Consumer向其获取路由信息。 -
Producer
消息的生产者,需要从NameServer获取Broker信息,然后与Broker建立连接,向Broker发送消息。 -
Consumer
消息的消费者,需要从NameServer获取Broker信息,然后与Broker建立连接,从Broker获取消息。 -
Topic
用来区分不同类型的消息,发送和接收消息前都需要先创建Topic,针对Topic来发送和接收消息。 -
Message Queue
为了提高性能和吞吐量,引入了Message Queue,一个Topic可以设置一个或多个Message Queue,这样消息就可以并行往各个Message Queue发送消息,消费者也可以并行的从多个 Message Queue读取消息 -
Message
Message 是消息的载体。 -
Producer Group
生产者组,简而言之,多个发送同一类消息的生产者称之为一个生产者组。 -
Consumer Group
消费者组,消费同一类消息的多个consumer实例组成一个消费者组。
RocketMQ支持两种消息模式:
- 广播消费: 每个消费者实例都会收到消息,也就是一条消息可以被每个消费者实例处理
- 集群消费: 一条消息只能被一个消费者实例消费