属于专业术语:
Producer
消息生产者,负责生产消息。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。
Producer Group
生产者组是同一类生产者的集合,这类Producer发送相同Topic类型的消息。一个生产者组可以同时发送多个主题的消息。
Consumer
消息消费者,负责消费消息。一个消息消费者会从Broker服务器中获取到消息,并对消息进行相关业务处理。
Consumer Group
消费者组是同一类消费者的集合,这类Consumer消费的是同一个Topic类型的消息。消费者组使得在消息消费方面,实现负载均衡(将一个Topic中的不同的Queue平均分配给同一个Consumer Group的不同的Consumer,注意,并不是将消息负载均衡)和容错(一个Consmer挂了,该Consumer Group中的其它Consumer可以接着消费原Consumer消费的Queue)的目标变得非常容易。
不过,一个Topic类型的消息可以被多个消费者组同时消费。
1)消费者组只能消费一个Topic的消息,不能同时消费多个Topic消息。
2)一个消费者组中的消费者必须订阅完全相同的Topic
Topic
主题是对消息的逻辑分类,比如说有订单类相关的消息,也有库存类相关的消息,那么就需要进行分类,一个是订单 Topic 专门用来存放订单相关的消息,一个是库存 Topic 专门用来存放库存相关的消息。
Tag
标签可以被认为是对主题的进一步细化,可以理解为二级分类,一般在相同业务模块中通过引入标签来标记不同用途,同时消费者也可以根据不同的标签进行消息的过滤。
Broker
Broker 是 RocketMQ 系统的主要角色,就是前面一直说的 MQ。Broker 接收来自生产者的消息,储存以及为消费者拉取消息的请求做好准备。
Name Server
Name Server 提供轻量级的服务发现和路由信息,每个 NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展。
NameServer
可以理解为简化的zk,起到一个注册中心的作用
区别于zK是他没有监听的概念,而是通过心跳包来维持自己与Broker之间的关系
NameServer集群之间的每个节点互相之间没有通信,是无状态的
NameServer的压力不会太大,主要是维护Topic-Broker之间的映射关系
但若是broker中的topic信息量太大,broker向nameService注册信息的时候会导致传输时间过长超时,NameServer会误判认为Broker下线
Broker
每台broker节点与所有的nameServer保持长连接及心跳,并定时将Topic信息注册到nameServer中
每个topic默认创建4个队列,相同的队列中保证顺序消费
Broker同样分为master和salve,相同的BrokerName,不同的BrokerId,一个master对应多个salve,一个salve只对应一个master
Broker上存存topic信息,topic由多个队列组成,队列会均匀分布到所有的broker上
Producer在发送消息时,会尽量平均分布到队列中,这样保证最终所有的消息在broker上是平均分配的
Producer
producer与随机的一个nameServer节点建立长连接,定期从nameServer中拉取topic-broker的映射信息
与提供topic的broker master建立一个长连接,producer每隔30秒向broker 发送一个心跳,broker每隔10秒扫描一下存活的链接
Producer发送消息支持三种模式
同步
异步
单向
Comsumer
comsumer同样采用集群部署,支持pull、push两种消费模式
comsumer可分为广播消息消费和集群消费
引用:
1、rocketMQ入门介绍
https://www.cnblogs.com/myseries/p/13153797.html
2、尚硅谷rocketMQ教学笔记