RocketMQ 学习

消息队列

参考官方文档:https://rocketmq.apache.org/zh/docs/

基本概念

  1. 主题(Topic):是消息传输和消息存储的顶级容器,不是实际的消息容器,而是一个逻辑上的概念,用于区分不同业务消息的标识,内部包含:消息队列(MessageQueue)消息(Message)
  2. 消息类型(MessageType):按照消息的传输特性的不同而定义的不同类型,用于类型管理和权限校验,包含了:普通消息(Normal)、顺序消息(FIFO)、事务消息(Transaction)和定时/延时消息(Delay)。
  3. 消息队列(MessageQueue):是消息传输和消息存储的实际容器,是消息存储的最小存储单元;一个主题由多个队列组成;由于队列的先进先出特性,可以通过Offset来标记消息在队列中的位置以及确定消息之间的顺序;还可通过Offset去读取任意数量的消息,以实现聚合读取、回溯读取的特性。
  4. 消息(Message):最小的数据传输单元,生产者将业务数据的负载和扩展属性包装到消息中发送到服务端进行存储,然后按照相关语义和订阅关系投递到消费者进行消费;特性:不可变性,持久性。
  5. 消息视图(MessageView):就是面向开发的一个消息只读接口,可以查看不能修改。
  6. 消息标签(MessageTag):是基于主题在进行细分的一个标签,就是给同一主题的消息打上不同的标签,然后消费者如果订阅了一个主题,然后它会根据它想要的标签进行筛选,以此来实现细粒度过滤。
  7. 消息位点(MessageQueueOffset):可以理解为每一个消息对于队头位置的偏移量,那么每一个消息都可以确定一个Offset,作用:可以通过记录消费的Offset来确保不会重复消费消息,而且可以通过改变消费Offset的来重新消费某个消息。
  8. 消费位点(ConsumerOffset):即消费者消费的位置,一定是满足 MinOffset <= ConsumerOffset <= MaxOffset,如果超出这个范围,则服务端会强制将 ConsumerOffset 定位到合法的 Offset。
  9. 消息索引(MessageKey):相当于数组下标的索引,可以通过O(1)的时间访问到索引对应的消息。
  10. 生产者(Producer):即消息的生产者,作用是构建并传输消息到服务器的实体,按照要求将业务消息数据封装并发送给服务器,就是纯纯给服务器干活的;那干活也有自己的方式:通过API接口去传递信息,同样可以进行批量传输的设置,还有就是发送事务消息,这时候生产者就不能够发完之后撒手不管了,这之间有一个半事务消息的概念,此时不算发送完成,生产者要去执行本地事务消息,再向服务器进行二次事务确认,这时候生产者心想:发送个消息这么麻烦,但是看到自己生产的消息能够到达相应的位置不至于仍在半路没人处理强啊,还是会很欣慰的!
  11. 事务检查器(TransactionChecker):生产者用于执行本地事务检查和异常事务恢复的监听器;就是刚才说的生产者发送消息后不能不管不问,需要通过事务检查器来监听自己生产的消息是否被正确应用了;流程:生成一条半事务消息 ==> 执行本地事务 ==> 提交事务状态 ==> if(Broker未收到事务状态) ==> 生产者进行回查 ==> 回查相应 ==> Broker 根据返回状态处理消息。
  12. 事务状态(TransactionResolution):包含事务提交、事务回滚、事务未决,服务端通过判断事务状态来控制事务消息是否应该提交。
  13. 消费者分组(ConsumerGroup):类似于主题(Topic),是一个逻辑概念,每一个分组通过在服务端注册的订阅关系规则获得Topic,Topic 与 消费者分组 是多对多关系;同时能够设置投递消息的顺序;能够设置消息重试策略。
  14. 消费者(Consumer):类似于队列(MessageQueue),是接受并消费信息的实体,必须关联到一个消费者组,同一个分组的消费者的行为约束要相同。
  15. 订阅关系(Subscription):就是针对接受到的消息消费者该怎么处理,取舍哪些的一个规则,同时也利用了消息过滤,并维护了消费状态。
  16. 消息过滤:就是根据订阅上面介绍的消息标签来进行过滤筛选,这个工作由服务端来完成。
  17. 重置消费位点:就是重新设置消费者要从哪里开始进行信息的消费。
  18. 消息轨迹:一条消息从生产者到消费者走过的路记录下来,方便排查错误信息。
  19. 消息堆积:供多需少,生产的速度大于消费的速度,那些没有来得及消费的信息便堆积在了一起。
  20. 事务消息:高级消息类型,保证消息生产和本地事务保持一致性。
  21. 定时/延时消息:高级消息类型,相当于设置定时任务,到达指定时间之后才能够被消费者消费。
  22. 顺序消息:按照业务中发送消息的顺序去消费,实现业务中的顺序处理;就比如抢票,前面提交消息的人一定比后面提供消息的人先得到票。

以上是对RocketMQ中的基本概念的理解,相信了解了这些之后,再去理解其中的业务逻辑会更加得心应手,以上这些概念就类似于零部件,然后记下来就是如何将零件组装起来造出来一个产品,会持续更新~

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

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

相关文章

Conda更换镜像源教程:加速Python包下载

Conda更换镜像源教程&#xff1a;加速Python包下载 为什么要更换conda镜像源&#xff1f; Conda作为Python的包管理和环境管理工具&#xff0c;默认使用的是国外镜像源&#xff0c;在国内下载速度往往较慢。通过更换为国内镜像源&#xff0c;可以显著提高包下载速度&#xff…

PCIe—TS1/TS2 之Polling.Active(一)

前文 训练序列有序集用于比特对齐、符号对齐以及交换物理层参数。2.5GT/s和5GT/s速率时&#xff0c;训练序列有序集不会加扰&#xff0c;只用8b/10b 编码。但到8GT/s及以上速率时&#xff0c;采用128b/130b编码&#xff0c;符号有可能加扰有可能不加扰&#xff0c;具体…

【HarmonyOS Next之旅】DevEco Studio使用指南(二十八) -> 开发云对象

目录 1 -> 开发流程 2 -> 创建云对象 3 -> 开发云对象 4 -> 调试云对象 4.1 -> 前提条件 4.2 -> 通过本地调用方式调试云对象 4.3 -> 通过远程调用方式调试云对象 5 -> 部署云对象 1 -> 开发流程 除去传统的云函数&#xff0c;您还可在端云…

基于51单片机的音乐盒汽车喇叭调音量proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1l3CSSMi4uMV5-XLefnKoSg 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C51 是一款常用的 8 位单片机&#xff0c;由 Atmel 公司&#xff08;现已被 Microchip 收…

实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.8 R语言解题

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅珏生译) 第5章析因设计引导5.7节思考题5.8 R语言解题。主要涉及方差分析&#xff0c;正态假设检验&#xff0c;残差分析&#xff0c;交互作用图。 (a) dataframe<-data.frame( Lightc(580,568…

[蓝桥杯]分考场

题目描述 nn 个人参加某项特殊考试。 为了公平&#xff0c;要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。 输入描述 输入格式&#xff1a; 第一行&#xff0c;一个整数 nn (1≤n≤1001≤n≤100)&#xff0c;表示参加考试的人数。 第二行…

C++: STL简介与string类核心技术解析及其模拟实现

目录: 一.STL二.string类一、创建对象的6种构造方式二、常用接口解析1. 容量操作2. 元素访问3. 修改操作4. 字符串操作 三.string模拟实现一、设计基础&#xff1a;类结构与资源管理二、拷贝控制&#xff1a;深拷贝的三种实现1. 传统深拷贝2. 现代写法&#xff08;推荐&#xf…

Python进阶【四】:XML和JSON文件处理

Python提供了多种处理XML和JSON文件的方式&#xff0c;让我们来看看最常用的方法。 一、处理JSON文件 JSON在Python中处理起来非常简单&#xff0c;因为它的结构与Python的字典(dict)和列表(list)几乎一致。 常用模块&#xff1a;json模块 优点&#xff1a;Python标准库自带…

Golang | 搜索哨兵-对接分布式gRPC服务

哨兵&#xff08;centennial&#xff09;负责接待客人&#xff0c;直接与调用方对接。哨兵的核心组件包括service HUB和connection pool。service HUB用于与服务中心通信&#xff0c;获取可提供服务的节点信息。connection pool用于缓存与index worker的连接&#xff0c;避免每…

CSS3实现的账号密码输入框提示效果

以下是通过CSS3实现输入框提示效果的常用方法&#xff0c;包含浮动标签和动态提示两种经典实现方案&#xff1a; 一、浮动标签效果 <div class"input-group"><input type"text" required><label>用户名</label> </div><…

maven编译时跳过test过程

如果代码里有无法在打包环境中测试的部分&#xff0c;则直接运行mvn clean package&#xff0c;因为测试失败&#xff0c;会导致打包失败。目前有两种方式可以跳过测试&#xff1a; 1. mvn clean package -DskipTests&#xff0c;这会跳过执行阶须&#xff0c;但仍会生成测试所…

美业+智能体,解锁行业转化新密码(2/6)

摘要&#xff1a;中国美业市场近年蓬勃发展&#xff0c;规模持续扩大&#xff0c;预计不久将突破万亿级别&#xff0c;但同时也面临着诸多挑战&#xff0c;如获客成本攀升、服务质量不稳定、难以满足消费者多元化个性化需求等。智能体技术的出现为美业带来了新的发展机遇&#…

设计模式——责任链设计模式(行为型)

摘要 责任链设计模式是一种行为型设计模式&#xff0c;旨在将请求的发送者与接收者解耦&#xff0c;通过多个处理器对象按链式结构依次处理请求&#xff0c;直到某个处理器处理为止。它包含抽象处理者、具体处理者和客户端等核心角色。该模式适用于多个对象可能处理请求的场景…

react/vue移动端项目,刷新页面404的原因以及解决办法

一 、 项目 移动端 二、背景 1、问题描述&#xff1a;react/vue移动端项目&#xff0c;正常的页面操作跳转&#xff0c;不会出现404的问题&#xff0c;但是一旦刷新&#xff0c;就会出现404报错 2、产生原因&#xff1a; React Router是客户端的路由&#xff0c;当再次刷新时…

数据结构-算法学习C++(入门)

目录 03二进制和位运算04 选择、冒泡、插入排序05 对数器06 二分搜索07 时间复杂度和空间复杂度08 算法和数据结构09 单双链表09.1单双链表及反转09.2合并链表09.2两数相加09.2分隔链表 013队列、栈、环形队列013.1队列013.2栈013.3循环队列 014栈-队列的相互转换014.1用栈实现…

用JS实现植物大战僵尸(前端作业)

1. 先搭架子 整体效果&#xff1a; 点击开始后进入主场景 左侧是植物卡片 右上角是游戏的开始和暂停键 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevic…

深入理解设计模式之代理模式

深入理解设计模式之&#xff1a;代理模式 一、什么是代理模式&#xff1f; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式。它为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介作用&#xff0c;可以在不改变目标…

Ubuntu设置之初始化

安装SSH服务 # 安装 OpenSSH Server sudo apt update sudo apt install -y openssh-server# 检查 SSH 服务状态 sudo systemctl status ssh # Active: active (running) since Sat 2025-05-31 17:13:07 CST; 6s ago# 重启服务 sudo systemctl restart ssh自定义分辨率 新…

【仿生机器人】极具前瞻性的架构——认知-情感-记忆“三位一体的仿生机器人系统架构

基于您的深度需求分析&#xff0c;我将为您设计一个全新的"认知-情感-记忆"三位一体的仿生机器人系统架构。以下是经过深度优化的解决方案&#xff1a; 一、核心架构升级&#xff08;三体认知架构&#xff09; 采用量子纠缠式架构设计&#xff1a; 认知三角&#xf…

Python量化交易12——Tushare全面获取各种经济金融数据

两年前写过Tushare的简单使用&#xff1a; Python量化交易08——利用Tushare获取日K数据_skshare- 现在更新一下吧&#xff0c;这两年用过不少的金融数据库&#xff0c;akshare&#xff0c;baostock&#xff0c;雅虎的&#xff0c;pd自带的......发现还是Tushare最稳定最好用&…