ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

专业术语概念

2021-10-04 16:35:18  阅读:182  来源: 互联网

标签:Producer broker Broker Topic 概念 消息 专业术语 Consumer


属于专业术语:

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教学笔记

标签:Producer,broker,Broker,Topic,概念,消息,专业术语,Consumer
来源: https://www.cnblogs.com/zbm-gg/p/15366617.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有