RocketMq 队列(MessageQueue)

news2024/11/29 4:53:29

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

官方文档

Linux 安装 RocketMq-CSDN博客

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

1.定义

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

1.1 定义数据的分类隔离

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

1.2 定义数据的身份和权限

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

2.模型关系​

RocketMQ 默认提供消息可靠存储机制,所有发送成功的消息都被持久化存储到队列中,配合生产者和消费者客户端的调用可实现至少投递一次的可靠性语义。

RocketMQ 队列模型和Kafka的分区(Partition)模型类似。在 RocketMQ 消息收发模型中,队列属于主题的一部分,虽然所有的消息资源以主题粒度管理,但实际的操作实现是面向队列。

RocketMQ 中通过修改队列数量,以此实现横向的水平扩容和缩容。

3.内部属性​

3.1 读写权限

定义:当前队列是否可以读写数据。

取值:由服务端定义,枚举值如下

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

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

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

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

4.使用建议​

4.1按照实际业务消耗设置队列数

RocketMQ 的队列数可在创建主题或变更主题时设置修改,队列数量的设置应遵循少用够用原则,避免随意增加队列数量。

主题内队列数过多可能对导致如下问题:

集群元数据膨胀

RocketMQ 会以队列粒度采集指标和监控数据,队列过多容易造成管控元数据膨胀。

客户端压力过大

RocketMQ 的消息读写都是针对队列进行操作,队列过多对应更多的轮询请求,增加系统负荷。

4.2 常见队列增加场景

4.2.1 实现物理节点负载均衡

 RocketMQ 每个主题的多个队列可以分布在不同的服务节点上,在集群水平扩容增加节点后,为了保证集群流量的负载均衡,建议在新的服务节点上新增队列,或将旧的队列迁移到新的服务节点上。

4.2.2 实现顺序消息性能扩展

RocketMQ 中顺序消息的顺序性在队列内生效的,因此顺序消息的并发度会在一定程度上受队列数量的影响,因此建议仅在系统性能瓶颈时再增加队。

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

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

相关文章

C++二分查找:统计点对的数目

本题其它解法 C双指针算法:统计点对的数目 本周推荐阅读 C二分算法:得到子序列的最少操作次数 本文涉及的基础知识点 二分查找算法合集 题目 给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成…

赢麻了!义乌一个村有5000个网红,有人年收租就300万!

#义乌一村电商年成交额超300亿# ,在中国,电商行业的发展可谓是日新月异,而位于浙江省义乌市的江北下朱村,正是这股潮流的一个典型代表。这个村子,处处弥漫着“直播”的气息,仿佛每个人都在为这个新兴行业助力。 江北下…

openEuler Linux 部署 FineBi

openEuler Linux 部署 FineBi 部署环境 环境版本openEuler Linux22.03MySQL8.0.35JDK1.8FineBi6.0 环境准备 升级系统内核和软件 yum -y updatereboot安装常用工具软件 yum -y install vim tar net-tools 安装MySQL8 将 MySQL Yum 存储库添加到系统的存储库列表中 sudo…

【anaconda】numpy.dot 向量点乘小技巧

假设向量A[1,1], 向量B[2,3]。如果想知道他们的内积就可以输入如下代码: 当然,如果是两个列向量相乘,肯定是不对的 但是如果没有维度也一样可以求得内积,而且结果不会套在列表里

自驾游汽车托运是交智商税吗?

自驾游汽车托运是交智商税吗? 亲爱的小伙伴们 你们有没有遇到过这样的困扰: 自驾游时,车辆的运输问题让你头疼不已? 是选择自己驾驶还是托运呢? 今天,我就来给大家种草一下汽车托运的好处, 让你的自驾游之旅更加轻松愉快! 1️.…

适用于 Mac 和 Windows 的顶级U 盘数据恢复软件

由于意外删除或设备故障而丢失 USB 驱动器中的数据始终是一件令人压力很大的事情,检索该信息的最佳选择是使用优质数据恢复软件。为了让事情变得更容易,我们已经为您完成了所有研究并测试了工具,并且我们列出了最好的 USB 记忆棒恢复软件&…

计算机编程基础教程,中文编程工具下载,编程构件组合按钮

计算机编程基础教程,中文编程工具下载,编程构件组合按钮 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件,而且可以开发大型的软件&#xff0c…

Java中的泛型是什么?如何使用泛型类和泛型方法?

Java 中的泛型是一种编程机制,允许你编写可以与多种数据类型一起工作的代码,同时提供编译时类型检查以确保类型的安全性。泛型的主要目的是提高代码的可重用性、类型安全性和程序的整体性能。 泛型类(Generic Class): 在泛型类中…

均匀球形分布的随机三维单位向量

生成具有均匀球形分布的随机三维单位向量[参考] import numpy as np import matplotlib.pyplot as plt def random_three_vector():"""Generates a random 3D unit vector (direction) with a uniform spherical distributionAlgo from http://stackoverflow.c…

NeoPreference延伸:为SharedPreferences配置项生成配置页面

代码地址:https://github.com/Nagi1225/NeoPreference.git 最初在开发NeoPreference这个SharedPreferences工具的时候,就期望完成三个目标: 代码简洁,新增配置项的时候一行代码(最多两行);读写…

顶级安卓数据恢复工具—— 15 个 Android 数据恢复程序榜单

探索并比较顶级 Android 数据恢复软件,并选择最好的 Android 恢复应用程序来恢复您的宝贵数据: 特别是您的智能手机或 Android 设备可以完成许多繁重的工作,其中最有用的是存储数据。Android 设备可以伪装成照片、视频、电子邮件甚至敏感商业…

YOLOv5轻量化改进之MobileNetv3

目录 一、原理 二、代码 三、应用到YOLOv5 一、原理 我们提出了基于互补搜索技术和新颖架构设计相结合的下一代mobilenet。MobileNetV3通过硬件网络架构搜索(NAS)和NetAdapt算法的结合来调整到移动电话cpu,然后通过新的架构进步进行改进。本文开始探索自动搜索算法和网络设计…

图片处理工具JixiPix Pastello mac中文版功能特色

JixiPix Pastello mac是一款数字绘画软件,它可以将照片转换为仿佛是手绘的油画、粉笔画、素描等风格的艺术作品。该软件提供了多种绘画效果和工具,例如颜料、画笔、纸张等,让用户可以轻松地调整画作的亮度、色彩和细节等参数,从而…

访谈 破风之人毛京波,选择难而正确的路

“无论是在燃油时代还是电动时代,我们所做的一切,只为回归纯粹的驾驶乐趣。”履新路特斯中国总裁整整一年的毛京波,从不放过任何一个展示路特斯品牌驾驭精神的机会。 11月17日,广州车展开幕首日,位于5.2馆的路特斯“冠…

flex布局实战之自动填充剩余

案例目标 文字部分自适应并且居中 图中是一个弹窗&#xff0c;我现在使用flex的布局来实现&#xff0c;标题和关闭按钮。因为是uni-app,所以标签是view 。你可以自行替换为 代码 <view class"popup-box"><view class"title"><view class&…

【Kotlin】类与接口

文章目录 类的定义创建类的实例构造函数主构造函数次构造函数init语句块 数据类的定义数据类定义了componentN方法 继承AnyAny&#xff1a;非空类型的根类型Any?&#xff1a;所有类型的根类型 覆盖方法覆盖属性覆盖 抽象类接口:使用interface关键字函数&#xff1a;funUnit:让…

【Kotlin】引入与基础语法

文章目录 Kotlin的特性Kotlin优势Kotlin的安卓项目变量变量保存了指向对象的引用优先使用val来避免副作用 后端变量Backing Fields延迟初始化 Kotlin的特性 它更加易表现&#xff1a;这是它最重要的优点之一。你可以编写少得多的代码。Kotlin是一种兼容Java的语言Kotlin比Java…

企业计算机服务器中了mkp勒索病毒怎么办?Mkp勒索病毒解密数据恢复

网络技术的不断发展&#xff0c;为企业的生产运营提供了坚实的基础&#xff0c;但随之而来的网络安全威胁也不断增加&#xff0c;影响了企业的正常生产生活。近期&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业计算机服务器遭到了mkp勒索病毒攻击&#x…

不同品牌的手机可以则哪一个你投屏到电视?

如果你使用AirDroid Cast的TV版&#xff0c;苹果手机可以通过airPlay或无线投屏方式&#xff0c;将屏幕同步到电视屏幕&#xff1b;多个品牌的安卓手机可以通过无线投屏投射到电视。而且无线投屏不限制距离&#xff0c;即使是远程投屏也可以实现。 打开AirDroid Cast的TV版&…

External model DLL ”ADC083XDLL“ not found_proteus仿真报错解决方法

仿真运行报错 External model DLL ”ADC083XDLL“ not found 原因 是proteus仿真软件缺少ADC083X.DLL文件或者ADC083X.DLL文件损坏。 解决方法 1.下载没问题的ADC083x.DLL ADC083X.DLL下载链接&#xff1a; 2.找到库文件夹&#xff0c;替换库文件ADC083X.DLL 库文件夹位置…