RocketMq 主题(TOPIC)

news2024/11/26 14:33:32

RocketMq是阿里出品(基于MetaQ)的开源中间件,已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现,十万级数据吞吐量,ms级处理速度,分布式架构,功能强大,扩展性强。

官方文档

Linux 安装 RocketMq-CSDN博客

Springboot 集成 RocketMq(入门)-CSDN博客

1.定义

主题是 RocketMQ 中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。 主题的作用主要如下:

1.1 定义数据的分类隔离

RocketMQ 建议将不同业务类型的数据拆分到不同的主题中管理,通过主题实现存储的隔离性和订阅隔离性。

1.2 定义数据的身份和权限

RocketMQ 的消息本身是匿名无身份的,同一分类的消息使用相同的主题来做身份识别和权限关理。

2.模型关系

主题是 RocketMQ 的顶层存储,所有消息资源的定义都在主题内部完成,但主题是一个逻辑概念,并不是实际的消息容器。

主题内部由多个队列组成,消息的存储和水平扩展能力最终是由队列实现的;并且针对主题的所有约束和属性设置,最终也是通过主题内部的队列来实现。

3.内部属性

3.1 主题名称

定义:主题的名称,用于标识主题,主题名称集群内全局唯一。


3.2 队列列表

定义:队列作为主题的组成单元,是消息存储的实际容器,一个主题内包含一个或多个队列,消息实际存储在主题的各队列内。

写队列:发送消息时根据写队列数量返回路由信息。

读队列:消费时按照读队列的个数返回路由信息。

3.3 消息类型

定义:主题所支持的消息类型。

Normal:普通消息。
FIFO:顺序消息。
Delay:定时/延时消息。
Transaction:事务消息.

约束:RocketMQ 从5.0版本开始,支持强制校验消息类型,即每个主题只允许发送一种消息类型的消息,这样可以更好的运维和管理生产系统,避免混乱。为保证向下兼容4.x版本行为,强制校验功能默认关闭,推荐通过服务端参数 enableTopicMessageTypeCheck 开启校验。

4.主题的类型

普通主题:这里的topic是用户创建主题。

重试主题:这里的topic是消息发送失败时候系统为之创建的主题。

死信主题:这里的topic类似垃圾箱,无法从中生产或者消费消息。

系统主题:这里的topic是Brocker启动后就自动生成的主题。

5.生产中使用建议

5.1 关闭自动创建主题的功能

主题属于顶层资源和容器,拥有独立的权限管理、可观测性指标采集和监控等能力,创建和管理主题会占用一定的系统资源。因此,生产环境需要严格管理主题资源,请勿随意进行增、删、改、查操作。

5.2 手动控制台创建

5.2.1 队列

当读队列数量 >= 写队列数量业务可以正常进行。

当读队列数量 写队列数量效果最佳

如果想调整读写队列的数量,首先减少写队列数量再减少读队列的数量(确保已读完)。

假设创建了4个写队列2个读队列则有两个队列的消息无法被消费,反之则存在两个空闲的读队列。

RocketMq不直接将读写队列设置相同直接目的是为了安全的收缩队列数量,间接的为了安全的扩容。

5.2.2 perm

6:读写状态,当前队列允许读取消息和写入消息。

4:只读状态,当前队列只允许读取消息,不允许写入消息。

2:只写状态,当前队列只允许写入消息,不允许读取消息。

0:不可读写状态,当前队列不允许读取消息和写入消息。

5.3 单一主题只收发一种类型消息

主题的设计原则为通过主题隔离业务,不同业务逻辑的消息建议使用不同的主题。同一业务逻辑消息的类型都相同,因此,对于指定主题,应该只收发同一种类型的消息。

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

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

相关文章

【C++高阶(五)】哈希思想--哈希表哈希桶

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 哈希结构 1. 前言2. unordered系列容器3. 哈希概…

FreeRTOS深入教程(软件定时器源码分析)

文章目录 前言一、软件定时器结构体二、软件定时器的工作机制三、创建软件定时器四、启动软件定时器五、软件定时器如何知道什么时候被调用总结 前言 除了有硬件定时器,还有软件定时器,那么这篇文章将带大家学习一下软件定时器是如何工作的,…

金鸣表格文字识别客户端输出项该如何选择?

智能布局:根据提交的图片自动设置输出的打印纸张大小和方向,其中表格识别默认为A4纵向,勾选“合并”可将N张图片批量识别成一个文件、一个表。 表格识别: excel:输出可编辑的excel。 word:输出可编辑的w…

express习惯养成小程序-计算机毕设 附源码 32209

习惯养成小程序的设计与实现 摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,习惯养成小程序被用户普遍使…

虾皮买手号怎么弄的

想要拥有虾皮买手号,可以使用shopee买家通系统进行自动化注册,这款软件目前支持菲律宾、泰国、马来西亚、越南、巴西、印度尼西亚等国家使用。 软件注册流程简单方便,首先我们需要先准备好手机号,因为现在注册虾皮买家号基本上都是…

TechSmith Camtasia2024中文版简单好用的视频处理软件

TechSmith Camtasia 2024中文版是由techsmith公司推出的一款简单好用的视频处理软件,它集视频录制与视频后期处理为一体,用户可以使用软件来进行屏幕录制,其中包括了影像、音效、鼠标移动的轨迹、解说声音等任何模式下的电脑屏幕状态&#xf…

IIP3参数的含义

IIP3参数的含义 三阶交调频率分量 混频器的输入端的总输入信号通常由射频输入(载波被调制信号)和本振组成。以输入总信号由3个正弦信号为例,输入端的总输入信号为: u u 1 cos ⁡ ω 1 t u 2 cos ⁡ ω 2 t u 3 cos ⁡ ω 3 …

COMP2121 Discrete Mathematics

COMP2121 Discrete Mathematics 需要可WeChat: zh6-86

国产1433D/E/F/H手持式信号发生器,可覆盖到50GHz

1433D/E/F/H信号发生器 1433系列信号发生器是中电科思仪科技股份有限公司专为外场测试设计的一款手持式仪器,具有连续波信号输出、频率/幅度/脉冲多种调制、大动态范围幅度调节、步进/列表扫描等功能,采用8.4寸大屏幕液晶及电容触摸屏一体化设计&#xf…

获取数据库中最占用内存的sql语句

SELECT TOP 20 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)], last_execution_time AS [最后一次执行时间],min_worker_time /1000 AS [最小执行时间(ms…

《opencv实用探索·三》opencv Mat与数组互转

1、利用Mat来存储数据&#xff0c;避免使用数组等操作 //创建一个两行一列的矩阵cv::Mat mean (cv::Mat_<float>(2, 1) << 0.77, 0.33);std::cout() << mean << std::endl;float a mean.at<float>(0, 0); //0.77float b mean.at<float&…

『Linux升级路』基础开发工具——make/Makefile

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;Linux &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、认识make/Makefile &#x1f4d2;1.1make/Makefile的优点 &#x1f4d2;…

windows dockerdesktop 安装sqlserver2022

1.下载windows dockertop软件 下载连接 2.安装完成配置&#xff0c;下载源地址 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": …

flink源码分析之功能组件(三)-rpc组件

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metrics,future。 本文解释rpc组件,rpc组件用于个核心组件,包括作业管理器,资源管理器和任务管理器之…

基于C#实现鸡尾酒排序(双向冒泡排序)

通俗易懂点的话&#xff0c;就叫“双向冒泡排序”。 冒泡是一个单向的从小到大或者从大到小的交换排序&#xff0c;而鸡尾酒排序是双向的&#xff0c;从一端进行从小到大排序&#xff0c;从另一端进行从大到小排序。 从图中可以看到&#xff0c;第一次正向比较&#xff0c;我们…

vulfocus apache-cve_2021_41773 漏洞复现

vulfocus apache-cve_2021_41773 漏洞复现 名称: vulfocus/apache-cve_2021_41773 描述: Apache HTTP Server 2.4.49、2.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞&#xff0c;攻击者可利用该漏洞读取到Web目录外的其他文件&#xff0c;如系统配置文件、网站源码…

SDN之Ubuntn20.04OpenDaylight控制器的安装

目录 1.OpenDaylight简介2.安装JAVA环境3.安装OpenDaylight4.问题总结 1.OpenDaylight简介 OpenDaylight&#xff08;ODL&#xff09;是一个开源的软件定义网络&#xff08;SDN&#xff09;控制器平台&#xff0c;提供了非常美观且功能完善的可视化管理界面&#xff0c;方便用…

邮政快递查询单号查询入口,分析筛选出其中的提前签收件

批量查询邮政快递单号的物流信息&#xff0c;并将其中的提前签收件分析筛选出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的朋友记得先注册&…

MySQL 高可用架构

MySQL 是实际生产中最常用的数据库&#xff0c;生产环境数据量极为庞大&#xff0c;对性能和安全要求很高&#xff0c;单机的 MySQL 是远远达不到的&#xff0c;所以必须搭建一个主从复制架构&#xff0c;同时可以基于一些工具实现高可用架构&#xff0c;在此基础上&#xff0c…