ICode9

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

RocketMq核心概念

2020-12-12 15:35:24  阅读:271  来源: 互联网

标签:Group Producer 核心 Topic 概念 消息 Message Consumer RocketMq


概念关系

  RocketMq中的概念包括Producer,Producer Group,Brocker,Name Server,Consumer,Consumer Group,Topic,Message,Message Queue,Tag,关系如下图:(蓝色为主要部分,其余颜色只用于区分位置关系)

 

  以Topic为中心各个概念关系直接采用官网图:(其中subTopics==Message Queue)

 概念详述

 Producer:生产者,代表产生消息的一方。将业务应用程序系统生成的消息发送给Brocker存储。RocketMq提供了多种发送方式,包括同步,异步和单向。同步和异步发送均需要Brocker返回确认信息,单向发送不需要。

 Producer Group:同一类Producer的集合,这类Producer发送同一类消息且发送逻辑一致。如果发送的是事务消息且原始生产者在发送之后崩溃,则Broker服务器会联系同一生产者组的其他生产者实例以提交或回溯消费。

 Consumer:消费者,代表消费消息的一方。从Borcker获取消息并输入应用程序中。从用户应用的角度,提供了两种类型的消费者,PullConsumer和PushConsumer

  PullConsumer:PullConsumer主动从Brocker获取消息,一旦一批消息被拉去,用户应用程序将启动消费过程。

  PushConsumer:Push consumer将消息拉取、消费进度和维护其他工作封装在内部,给最终用户留下一个回调接口,在消息到达时执行。也就是PushConsumer是Brocker主动推送消息。

 Consumer Group:同一类Consumer的集合,这类Consumer通常消费同一类消息且消费逻辑一致。消费者组使得在消息消费方面,实现负载均衡和容错的目标变得非常容易。要注意的是,消费者组的消费者实例必须订阅完全相同的Topic。RocketMQ 支持两种消息模式:集群消费(Clustering)和广播消费(Broadcasting)。

  集群消费:相同Consumer Group的Consumer实例平均分摊消息

  广播消费:相同Consumer Group的Consumer实例全量接收消息

 Brocker:接收来自生产者的消息,存储它们并准备处理来自消费者的请求。它还存储与消息相关的元数据,包括消费者组、消费进度偏移量和主题/队列信息。

 Name Server:充当路由信息提供程序。

 Topic:表示一类消息的集合,每个主题包含若干条Message,每条Message只能属于一个主题,是RocketMQ进行消息订阅的基本单位。Topic与Producer和Consumer的关系非常松散。具体来说,一个Topic可以有零个、一个或多个向其发送Message的Producer;相反,生产者可以发送不同Topic的Message。从Consumer的角度来看,一个Topic可以由零个、一个或多个Consumer Group订阅。类似地,Consumer Group可以订阅一个或多个主题,只要该组的实例保持其订阅一致。

 Message:消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。RocketMQ中每个消息拥有唯一的Message ID,且可以携带具有业务标识的Key。系统提供了通过Message ID和Key查询消息的功能。

 Message Queue:主题被划分为一个或多个子主题“消息队列”。

 Tag:使用标记,来自同一业务模块的不同目的的消息可能具有相同的主题和不同的标记。标记将有助于保持代码的整洁和一致性,而且标记还可以方便RocketMQ提供的查询系统。

标签:Group,Producer,核心,Topic,概念,消息,Message,Consumer,RocketMq
来源: https://www.cnblogs.com/lin0/p/14122080.html

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

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

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

ICode9版权所有