rocketmq基本概念

izecsonlee izecsonlee     2023-05-02     549

关键词:

# 基本概念
----
## 1 消息模型(Message Model)

RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中。ConsumerGroup 由多个Consumer 实例构成。

## 2 消息生产者(Producer)
负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送。同步和异步方式均需要Broker返回确认信息,单向发送不需要。

## 3 消息消费者(Consumer)
负责消费消息,一般是后台系统负责异步消费。一个消息消费者会从Broker服务器拉取消息、并将其提供给应用程序。从用户应用的角度而言提供了两种消费形式:拉取式消费、推动式消费。

## 4 主题(Topic)
表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。

## 5 代理服务器(Broker Server)
消息中转角色,负责存储消息、转发消息。代理服务器在RocketMQ系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。

## 6 名字服务(Name Server)
名称服务充当路由消息的提供者。生产者或消费者能够通过名字服务查找各主题相应的Broker IP列表。多个Namesrv实例组成集群,但相互独立,没有信息交换。

## 7 拉取式消费(Pull Consumer)
Consumer消费的一种类型,应用通常主动调用Consumer的拉消息方法从Broker服务器拉消息、主动权由应用控制。一旦获取了批量消息,应用就会启动消费过程。

## 8 推动式消费(Push Consumer)
Consumer消费的一种类型,该模式下Broker收到数据后会主动推送给消费端,该消费模式一般实时性较高。

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

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

## 11 集群消费(Clustering)
集群消费模式下,相同Consumer Group的每个Consumer实例平均分摊消息。

## 12 广播消费(Broadcasting)
广播消费模式下,相同Consumer Group的每个Consumer实例都接收全量的消息。

## 13 普通顺序消息(Normal Ordered Message)
普通顺序消费模式下,消费者通过同一个消费队列收到的消息是有顺序的,不同消息队列收到的消息则可能是无顺序的。

## 14 严格顺序消息(Strictly Ordered Message)
严格顺序消息模式下,消费者收到的所有消息均是有顺序的。

## 15 消息(Message)
消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。RocketMQ中每个消息拥有唯一的Message ID,且可以携带具有业务标识的Key。系统提供了通过Message ID和Key查询消息的功能。
## 16 标签(Tag)
为消息设置的标志,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。标签能够有效地保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同子主题的不同消费逻辑,实现更好的扩展性。

rocketmq的消息架构模型以及核心概念

详细介绍了RocketMQ的基本概念,以及消息模型。文章目录1基本概念2消息模型3消费位移RocketMQ是一个纯Java开发的分布式的开源消息中间件,具有高性能、高可靠、高实时、分布式等特点。RocketMQ在阿里内部经历了多次双十... 查看详情

rocketmq基本概念介绍

参考技术A初步接触了RocketMQ后发现其与传统意义上的实现JMS协议的消息队列(如ActiveMQ)存在着不小的区别,很有必要对其中的一些概念做个说明。如图所示为RocketMQ基本的部署结构,主要分为NameServer集群、Broker集群、Producer集... 查看详情

云原生中间件rocketmq基本概念&功能特性(代码片段)

...及可扩展性,是适用于现代应用的最佳设计方案。什么是RocketMQRocketMQ官方定义为一个统一的消息传递引擎,轻量级的数据处理平台。ApacheRocketMQ是分布式和低延迟消息和流处理平台,性能和可靠性高,trillion-level(万亿级)能力和 查看详情

rocketmq(二)——基本概念

...个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。topic:message1:nmessage:topic1:1一个生产者可以同时发送多种Topic消息;而一个消费者只对某种特定的Topic感兴趣,即只可以订阅和消费一种Topic消... 查看详情

rocketmq概念篇

参考技术A白话系列文章讲述RocketMQ。因为是白话,尽量通过比较直白的方式来介绍RocketMQ,所以涉及到详细的技术细节可能表述的不是那么严谨。但是不用担心,后续会有专门的文章详细介绍技术细节。这篇文章介绍的是RocketMQ... 查看详情

rocketmq的初步认识,topicnameserverbroker相关概念的解释

...知识太基础了也在所不惜。绝对不能重蹈kafka的覆辙。在rocketMQ中,有topic、nameServer、broker三个最基本概 查看详情

rocketmq——角色与术语详解

原文地址:http://jaskey.github.io/blog/2016/12/15/rocketmq-concept/RocketMQ——角色与术语详解2016-12-15THU 15:48RocketMQ中有很多概念,其中包括一些术语和角色。理清楚基本的概念能有效的帮助理解RocketMQ的原理以及排查问题。角色:Producer... 查看详情

rocketmq(代码片段)

Rocketmq安装文章目录Rocketmq安装一、Rocketmq简介1消息队列优点:2rocketmq组成部分(1producer生产消息(2Consumer消费producer生产的消息(3BrokerServer接收存储分发消息(4NameServer提供路由元数据3rocketmq架构图4rocketmq的... 查看详情

rocketmq概念整理

MapedFile和文件一对一关系MapedFileQueue管理mapedFile,新建、获取、删除mapedFile将消息写入文件  查看详情

rocketmq---核心概念特性使用等

对于RocketMQ而言,感觉官方提供的东西还是可以的:https://github.com/apache/rocketmq/tree/master/docs/cn  查看详情

分布式事务之深入理解什么是2pc3pc及tcc协议?

导读 在上一篇文章《【分布式事务】基于RocketMQ搭建生产级消息集群?》中给大家介绍了基于RocketMQ如何搭建生产级消息集群。因为本系列文章最终的目的是介绍基于RocketMQ的事物消息来解决分布式系统中的数据一致性问题,... 查看详情

2rocketmq源码解析之与springboot集成(代码片段)

上一篇文章分析了一下RocketMQ的基本架构、概念、安装以及使用方式。现在大多数项目都是基于SpringBoot。因为它很方便的自动装配机制,所以现在构建项目都是基于SpringBoot。下面我们来分析一下RocketMQ是如何集成SpringBoot的。... 查看详情

rocketmq

RocketMQ官网:https://rocketmq.apache.org/看中文文档基本概念消息类型很多,java默认的机制并没有对消息进行归类,只会一股脑的消费,有时候就会比较混乱,性质就会受到影响;消息太多,没有分类,... 查看详情

rocketmq中acl权限控制(代码片段)

...本上会涉及到用户、资源、权限、角色等概念,那在RocketMQ中上述会对应哪些对象呢?用户用户是访问控制的基础要素,也不难理解,RocketMQACL必然也会引入用户的概念,即支持用户名、密码。资源资源& 查看详情

rocketmq中acl权限控制(代码片段)

...本上会涉及到用户、资源、权限、角色等概念,那在RocketMQ中上述会对应哪些对象呢?用户用户是访问控制的基础要素,也不难理解,RocketMQACL必然也会引入用户的概念,即支持用户名、密码。资源资源& 查看详情

rocketmq基础概念剖析,并分析一下producer的底层源码

这篇博客聊聊关于RocketMQ相关的东西,主要聊的点有RocketMQ的功能使用、RocketMQ的底层运行原理和部分核心逻辑的源码分析。至于我们为什么要用MQ、使用MQ能够为我们带来哪些好处、MQ在社区有哪些实现、社区的各个MQ的优劣对比... 查看详情

消息队列学习--rocketmq概念了解

今天来学习一款国产的消息中间件:RocketMQ。RocketMQ最初是由阿里团队研发,具有高性能、低延迟和高可靠等特性。一、概述  先来对RocketMQ有一个宏观的了解灵活的可扩展性。天然支持集群,四大核心组件(NameSe... 查看详情

消息队列学习--rocketmq概念了解

今天来学习一款国产的消息中间件:RocketMQ。RocketMQ最初是由阿里团队研发,具有高性能、低延迟和高可靠等特性。一、概述  先来对RocketMQ有一个宏观的了解灵活的可扩展性。天然支持集群,四大核心组件(NameSe... 查看详情