RocketMQ快速入门:group、topic、queue、tag等基本概念(四)

0. 引言

上一节,我们说明了rocketmq中的4个核心组成以及他们之间的工作关系。但其中穿插的topic, queue等概念,如果未接触过mq的同学可能会有些迷糊,所以本节,我们重点针对rocketmq中的基本概念进行讲解,之前学习过其他mq的同学也能够形成对比。

1. 基本概念

Group:分组

rocektmq中有两种分组:消费者分组和生产者分组,每个消费者、生产者都可以属于一个分组。

一个消费者分组中的消费者都会共同消费一个topic消息,在集群模式下,一个topic的消息只能被消费者分组里的一个消费者消费,其消费进度是共享的。广播模式下,因为每个消费者都会收到消息,因此他们之间的消费进度相互独立。

同一生产者分组中的生产者发送的消息会分布到不同的Queue上,从而实现负载均衡。rocketmq 5.x版本开始,生产者是匿名的,无需管理生产者分组(ProducerGroup);对于历史版本服务端3.x和4.x版本,已经使用的生产者分组可以废弃无需再设置,且不会对当前业务产生影响

Topic:主题

topic是RocketMQ中的消息类别。一个Topic可以有多个生产者和消费者,是消息的逻辑分类。对于发送消息和消费消息而言,可见的都是topic,而具体的queue则是通过负载均衡自动分配的。

topic可以消息发送前手动创建,也可以开启broker的自动创建topic,在发送消息时自动检测topic是否存在,不存在则自动创建

Queue:队列

queue是Topic的物理分区,也是rocketmq中的最小存储单元,也就是说每个queue都是以独立的物理文件存在。一个Topic可以配置多个Queue,以实现扩展和负载均衡,默认会创建4个队列。

rocketmq中是以topic为单位进行管理,但实际传输的对象是到queue,也就是说无论消息发送还是消费都是到实际的queue中去操作。

Message:消息

消息队列中传递信息的载体,message中包含了如下信息:

  • 主题名称:当前消息所属主题的名称
  • 消息类型:当前消息的类型,rocektmq中支持的消息类型有:Normal 普通消息、FIFO 顺序消息、Delay 延迟消息、Transaction 事务消息
  • 消息队列:存储当前消息的队列
  • 消息位点:当前消息在队列中的位置
  • 消息id:消息的唯一标识,集群内全局唯一,由数字和字母组成的32位字符串
  • 索引Key:消息的索引键,用于快速检索消息
  • 标签:消息的过滤标签,选填项,设置后消费者可以通过标签过滤指定消息
  • 消息体:实际要传输的数据,采用二进制字节传输
  • 定时时间:延迟消息的属性
  • 消息发送时间:消息发送时,生产者客户端的本地当前时间戳
  • 消息保存时间:消息在mq服务端完成落盘时的本地时间戳
  • 消费重试次数:消费失败后,服务端重新投递的次数
  • 自定义属性:生产者自定义的扩展信息

rocketmq中普通和顺序消息大小限制在4MB,事务和延迟消息限制在64KB

– 参考于rocetmq message消息内部属性

Tag:标签

是可以加在消息上的标识,用于过滤消息,相当于是给消息再加一个标识条件,后续消费时可以通过过滤器来过滤指定tag的消息

2. 整体关系图

如下图所示,在整体关系中,broker中包含多个topic,一个topic中包含多个queue,一个队列中有多个消息,队列是承装消息的物理载体,而每个消息中都可以标识对应的tag
在这里插入图片描述

3. 总结

经过前几章的讲解,我们了解了rocketmq的核心概念,下一节我们将结合实际代码来体会rocketmq的使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/2567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliLock.Licensing.dll在VS中的16个使用方法

通过.NET库 "IntelliLock.Licensing.dll",你能够在运行时确定你的锁定软件的当前许可状态。你只需要在你的项目中引用这个库并访问相应的方法和属性。所有的方法和属性都应该是自我解释的。你不需要选择一个许可证文件。如果一个有效的许可证文件是可用的…

机器学习之模糊聚类(Fuzzy Clustering)附代码

概念 模糊聚类(Fuzzy Clustering)是一种聚类分析方法,与传统的硬聚类(Hard Clustering)不同,它允许样本属于多个聚类的成员关系程度不同。在模糊聚类中,每个数据点都被赋予属于每个聚类的隶属度(Membership Degree),而不是严格地归属于某一个聚类。这使得模糊聚类对…

基础拓扑-习题(下)

17.令 E E E是所有 x ∈ [ 0 , 1 ] x \in \left[ 0,1 \right] x∈[0,1],其十进小数展开式中只有数码 4 4 4和 7 7 7者。 E E E是否可数? E E E是否在 [ 0 , 1 ] \left[ 0,1 \right] [0,1]中稠密? E E E是否紧? E E E是否完全 证明…

人工智能中两个较为常见的评估模型性能指标(EVS、MAE)

1、解释方差(EVS) 官方社区链接:sklearn.metrics.explained_variance_score-scikit-learn中文社区 explained_variance_score是一个用于评估回归模型性能的指标,它衡量的是模型预测值与实际值之间关系的密切程度。具体来说,解释方差分数表示…

springboot整合rabbitMQ系列10 利用插件实现延时消息

插件的安装,本文就不做描述了,插件安装后如下,就说明安装成功了1 添加pom依赖,yml配置就不讲了2 核心类,定义交换机的代码改成如下,其它的定义队列,设置绑定关系,设置死信等&#xf…

【面试经典 150 | 数组】Z 字形变换

文章目录 写在前面Tag题目来源解题思路方法一:二维矩阵模拟方法二:一次遍历 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于…

【CouchDB 与 PouchDB】

CouchDB是什么 CouchDB,全名为Apache CouchDB,是一个开源的NoSQL数据库,由Apache软件基金会管理。CouchDB的主要特点是使用JSON作为存储格式,使用JavaScript作为查询语言(通过MapReduce函数),并…

QT中基于TCP的网络通信

QT中基于TCP的网络通信 QTcpServer公共成员函数信号 QTcpSocket公共成员函数信号 通信流程服务器端通信流程代码 客户端通信流程代码 使用Qt提供的类进行基于TCP的套接字通信需要用到两个类: QTcpServer:服务器类,用于监听客户端连接以及和客…

赛劲SEJINIGB零背隙滚轮齿条齿圈产品助力高精度运动平台

在高度精密化的工业时代,传统齿轮齿条系统所面临的背隙、摩擦粉尘、润滑等问题愈发凸显,这些问题不仅限制了设备的精度和稳定性,还对生产效率和产品质量造成严重影响。为此,赛劲SEJINIGB经过长期研发和技术积累,推出了…

消息队列 Kafka 入门篇(二) -- 安装启动与可视化工具

一、Windows 10 环境安装 1、下载与解压 首先,访问Apache Kafka的官方下载地址: https://kafka.apache.org/downloads 在本教程中,我们将使用kafka_2.13-2.8.1版本作为示例。下载完成后,解压到您的工作目录的合适位置&#xff…

ubuntu下chronyc tracking报文详解

在ubuntu下使用chronyc进行时钟的同步操作,下面是执行chrony tracking返回结果: Reference ID : AC1005E7 (ntpxx) Stratum : 12 Ref time (UTC) : Tue Apr 23 07:24:09 2024 System time : 0.000001974 seconds slow of NTP time Last …

如何在Windows 8/10/11上启用和禁用内置访客帐户?这里提供几种方法

你的Windows上有一个内置的guest帐户,可以帮助计算机上没有帐户的人登录。当然,你可以打开或关闭它。本文将介绍一些在Windows 8/10/11计算机中启用和禁用内置guest帐户的有用方法,供你更好地参考。 如何启用内置来宾帐户 在本地组策略中启…

Django中的事务

1 开启全局的事务 DATABASES {default: {ENGINE: django.db.backends.mysql, # 使用mysql数据库NAME: tracerbackend, # 要连接的数据库USER: root, # 链接数据库的用于名PASSWORD: 123456, # 链接数据库的用于名HOST: 192.168.1.200, # mysql服务监听的ipPORT: 3306, …

面向多源异质遥感影像地物分类的自监督预训练方法

源自:测绘学报 作者:薛志祥, 余旭初, 刘景正, 杨国鹏, 刘冰, 余岸竹, 周嘉男, 金上鸿 摘 要 近年来,深度学习改变了遥感图像处理的方法。由于标注高质量样本费时费力,标签样本数量不足的现实问题会严重影响深层神经网络模型的性能。为解决这一突出矛盾…

Linux防火墙相关命令以及ip白名单配置

Linux防火墙相关命令以及ip白名单配置 firewall防火墙基础命令查看防火墙的服务状态查看防火墙的状态服务的开启、关闭和重启查看防火墙规则端口的查询、开放和关闭重启防火墙 防火墙白名单配置部分参数介绍 firewall防火墙基础命令 查看防火墙的服务状态 systemctl status f…

使用 vllm 本地部署 cohere 的 command-r

使用 vllm 本地部署 cohere 的 command-r 0. 引言1. 安装 vllm2. 本地部署 cohere 的 command-r3. 使用 cohere 的 command-r 0. 引言 此文章主要介绍使用 使用 vllm 本地部署 cohere 的 command-r。 1. 安装 vllm 创建虚拟环境, conda create -n myvllm python…

nn.Embedding, nn.Parameter,nn.linear的区别

还没总结: 先贴上参考帖子: Difference between Embedding formulations Issue #60 lucidrains/vit-pytorch GitHub https://audreywongkg.medium.com/pytorch-nn-parameter-vs-nn-linear-2131e319e463 Differences between nn.Embedding and nn.…

网络安全之CSRFSSRF漏洞(上篇)(技术进阶)

目录 一,CSRF篇 二,认识什么是CSRF 三,实现CSRF攻击的前提 四,实战演练 【1】案例1 【2】案例2 【3】案例3 【4】案例4(metinfo) 一,CSRF篇 二,认识什么是CSRF CSRF&#x…

Diff算法深度剖析:优化DOM操作的关键

React的Diff算法是用于比较新旧虚拟DOM树,以找出需要进行更新的部分。它通过遍历树的节点,并比较节点属性和内容,来确定节点是否需要进行更新。 React的Diff算法采用了一些优化策略,以减少不必要的DOM更新,提高性能。…

程序员过了35岁没人要?“这行越老越香”

程序员35岁失业?参加完OceanBase开发者大会,我又悟了! 周六参加了OceanBase2024 开发者大会的现场,来之前我其实挺忐忑的,我觉得一个数据库产品的发布会,能有什么新鲜的东西? 踏入酒店的那一刻&…