rocketmq消息重试和死信队列

2023-11-01

1、消息重试

若Consumer消费某条消息失败,则RocketMQ会在重试间隔时间后,将消息重新投递给Consumer消费,若达到最大重试次数后消息还没有成功被消费,则消息将被投递至死信队列。

消息重试只针对集群消费模式生效;广播消费模式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息
  • 最大重试次数:消息消费失败后,可被重复投递的最大次数。

consumer.setMaxReconsumeTimes(10);
  • 重试间隔:消息消费失败后再次被投递给Consumer消费的间隔时间,只在顺序消费中起作用。

consumer.setSuspendCurrentQueueTimeMillis(5000);

顺序消费和并发消费的重试机制并不相同,顺序消费消费失败后会先在客户端本地重试直到最大重试次数,这样可以避免消费失败的消息被跳过,消费下一条消息而打乱顺序消费的顺序,而并发消费消费失败后会将消费失败的消息重新投递回服务端,再等待服务端重新投递回来,在这期间会正常消费队列后面的消息。

并发消费失败后并不是投递回原Topic,而是投递到一个特殊Topic,其命名为%RETRY%ConsumerGroupName,集群模式下并发消费每一个ConsumerGroup会对应一个特殊Topic,并会订阅该Topic。 两者参数差别如下

消费类型

重试间隔

最大重试次数

顺序消费

间隔时间可通过自定义设置,SuspendCurrentQueueTimeMillis

最大重试次数可通过自定义参数MaxReconsumeTimes取值进行配置。该参数取值无最大限制。若未设置参数值,默认最大重试次数为Integer.MAX

并发消费

间隔时间根据重试次数阶梯变化,取值范围:1秒~2小时。不支持自定义配置

最大重试次数可通过自定义参数MaxReconsumeTimes取值进行配置。默认值为16次,该参数取值无最大限制,建议使用默认值

并发消费重试间隔如下,可以看到与延迟消息第三个等级开始的时间完全一致。

第几次重试

与上次重试的间隔时间

第几次重试

与上次重试的间隔时间

1

10s

9

7min

2

30s

10

8min

3

1min

11

9min

4

2min

12

10min

5

3min

13

20min

6

4min

14

30min

7

5min

15

1h

8

6min

16

2h

2、死信队列

当一条消息初次消费失败,RocketMQ会自动进行消息重试,达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息。此时,该消息不会立刻被丢弃,而是将其发送到该消费者对应的特殊队列中,这类消息称为死信消息(Dead-Letter Message),存储死信消息的特殊队列称为死信队列(Dead-Letter Queue),死信队列是死信Topic下分区数唯一的单独队列。如果产生了死信消息,那对应的ConsumerGroup的死信Topic名称为%DLQ%ConsumerGroupName,死信队列的消息将不会再被消费。可以利用RocketMQ Admin工具或者RocketMQ Dashboard上查询到对应死信消息的信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rocketmq消息重试和死信队列 的相关文章

  • 智慧教室--智能管控系统

    智慧教室系统是一款基于AIOT数字化平台的智能教育解决方案 该系统实现了全面数字化 自动化管理和智能化控制 可大大提高教学效率和质量 为学生带来更加优质的教育体验 智能管控是智慧教室系统的核心功能之一 通过物联网技术 将教室内各种设备和设施
  • Python-import导入上级目录文件

    假设有如下目录结构 dir0 file1 py file2 py dir3 file3 py dir4 file4 py dir0文件夹下有file1 py file2 py两个文件和dir3 dir4两个子文件夹 dir3中有file3
  • 使用python对银行信息管理系统的简单实现

    一 首先是用户属性的类 class account object 储存用户信息的类 def init self id1 name tel money self id id1 账户 self name name 姓名 self tel tel
  • 更改element button 按钮颜色

    在全局的index scss里面改 显示时按钮样式 el button inblack 需要更改的按钮类型 background 060606 important border color 060606 important color ff
  • Python安全攻防之第二章Python语言基础

    2 3 Python模块的安装与使用 python模块的安装 pip3 install 模块名称 py 3 m pip install 模块名称 python模块的导入与使用 1 Import模块名称 采用 Import模块名称 方式时 需
  • 业务流程图怎么画?3步+8张案例,5分钟教你快速上手!

    业务流程图能很好地帮助我们梳理业务 高效表达需求 尤其是产品经理在梳理业务时 经常会用到业务流程图 业务流程图会在产品经理画原型图前 帮助梳理产品业务流程 避免做无用功 今天从业务历程图的基本介绍 常用场景和绘制方法三方面介绍 让大家对业务
  • linux文件代理高速下载,告别龟速下载!

    原始下载链接 wget https github com SwinTransformer storage releases download v1 0 0 swin tiny patch4 window7 224 pth 高速下载 wget
  • Anaconda + jupyter notebook + jupyter lab环境配置

    1 更换源 1 1 pip源 pip config set global index url https pypi tuna tsinghua edu cn simple pip config set install trusted hos
  • MySQL备份与恢复

    2 3 1备份MySQL数据库 在MySQL的bin目录下 有一个名为mysqldump的可执行文件 将该bin目录添加到环境变量中 可以利用它在 命令提示符 环境下来备份数据库 语法格式如下 mysqldump opt 要备份的数据库名
  • RocketMQ源码(26)—DefaultMQPushConsumer事务消息源码【一万字】

    事务消息是RocketMQ的一大特性 其被用来实现分布式事务 关于RocketMQ的事务消息的相关原理的介绍见这篇博客 RocketMQ的分布式事务机制 事务消息 关于事务消息的基本案例看这里 消息事务样例 本文主要介绍RocketMQ的事
  • 【NLP】第 6 章 :微调预训练模型

    到目前为止 我们已经了解了如何使用包含预训练模型的huggingface API 来创建简单的应用程序 如果您可以从头开始并仅使用您自己的数据来训练您自己的模型 那不是很棒吗 如果您没有大量空闲时间或计算资源可供使用 那么使用迁移学习 是最
  • rabbitmq消费者启动报队列未找到

    使用的是spring rabbitmq 启动tomcate报错 消费这队列找不到 如果队列不存在消费者会自动创建的 Caused by org springframework amqp AmqpIllegalStateException F
  • 【ffmpeg基础】ffmpeg音频编码

    一 aac编码 输入raw音频编码为AAC ffmpeg i input wav acodec aac y input aac 通过 acodec来指定音频编码器 视频编码器为 vcodec 也可以使用 c a来指定音频编码器 ffmpeg
  • Git clone 时 出现SSL certificate problem error

    出现这个问题的原因是本地默认开启了SSL认证 但是在本地找不到SSL证书 解决办法就是关掉 SLL认证 git clone 时加上参数 no ssl check 完整的命令应该是 git clone no ssl check https g
  • 长春地铁一号线作业

    长春一号线作业 代码如下 public class 第一次作业 public static void main String args System out println 北环城站 一匡街 胜利公园 解放大路 工农广场 卫星广场 华庆路
  • JSON介绍及代码示例

    了解json JSON是什么 JSON是JavaScript Object Notation的缩写 它是一种数据交换格式 在JSON出现之前 大家一直用XML来传递数据 因为XML是一种纯文本格式 所以它适合在网络上交换数据 XML本身不算
  • 深度学习模型参数量/计算量(附计算代码)

    参考 https mp weixin qq com s biz MzI4MDYzNzg4Mw mid 2247546551 idx 2 sn f198b6365e11f0a18832ff1203302632 chksm ebb70e63dc
  • mq的基本介绍和基本用法

    1 什么是MQ 有什么用 MQ 是message queue 消息队列 也叫消息中间件 遵守JMS java message service 规范的一种软件 同时还有另一个叫AMQP的应用层协议 语言无关性不受产品 语言等限制 rabbit
  • Kafka速度之谜:高性能的幕后秘密大揭秘

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 kafka高性能的原因 Page Cache ZeroCopy 零拷贝 前言 Kafka的介绍 kafka是linkedIn开源的分布式消息系统 归给Ap
  • 通过 .net 客户端通过 SSL 连接到 IBM MQ

    我正在尝试通过 NET 客户端连接到 MQ 服务器队列 我需要使用证书进行安全通信 这是我的代码 MQEnvironment SSLKeyRepository SYSTEM MQEnvironment ConnectionName conn

随机推荐

  • Android Kotlin SharedFlow

    SharedFlow 会从其中收集值得所有使用方法中发出数据 简而言之就是 像普通的流只可以一方发送 一方接受 而这个流可以一方发送 多方接受 下面上代码演示 SharedFlowFragment package com example a
  • 【C#】-属性(Property)和字段(Field)的区别

    导读 近期学习过程中发现了一些问题 我的学习只是学习 敲代码就是敲代码 没有加入思考 也不问为什么就直接去敲人家写好的例子去敲 把知识都学死了 逐渐散失了思考能力 所以学习的兴趣大打折扣 正如那句话 学而不思则罔 思而不学则殆 在设计模式中
  • c语言 学生信息管理系统设计,大一C语言结课设计之《学生信息管理系统》

    第一次写这么长的程序 代码仅供参考 有问题请留言 学生信息管理系统 IDE Dev Cpp 4 9 9 2 2014 6 15 include include include include include using std sort u
  • 【Redis】回顾Redis知识点之事务机制

    回顾Redis知识点之事务机制 Redis事务机制 为什么 Redis 不支持回滚 roll back 假如事务执行一半的时候Redis宕机怎么办 为什么需要内存回收 上一篇回顾下Redis基础知识点中有简单介绍Redis与Memcache
  • python 一行代码 将小数变成百分数

    数据表 将人数占比和金额占比设置成百分数 先将数据变成保留4位小数点的数 方法一 最简单 result 人数占比 round 4 result 金额占比 round 4 方法二 lambda函数 把数据变成4位小数点的数 写lambda函数
  • 云服务器和传统IDC物理机有什么区别?

    为什么选腾讯云服务器不选传统IDC物理机 云服务器弹性计算使用灵活 上云是趋势 并且性价比高 支持一键升级配置或降级配置 一键部署搭建应用程序环境 一键调整公网带宽 一键镜像复制到另一台服务器 并且支持退款 可以实现分分钟创建多台云服务器实
  • Springboot中使用mabatis_plus拓展包多数据源配置

    1 需求 使用Springboot进行项目开发时 需要访问多个数据库 每个数据库都有各自的作用 需要将数据分开建表存储 1 多数据源配置 两个库业务互不相干 a方法使用a库的数据 b方法使用b库的数据 2 动态数据源配置 两个库业务有关联
  • Flink intervalJoin 使用 -转载

    1 前言 Flink中基于DataStream的join 只能实现在同一个窗口的两个数据流进行join 但是在实际中常常会存在数据乱序或者延时的情况 导致两个流的数据进度不一致 就会出现数据跨窗口的情况 那么数据就无法在同一个窗口内join
  • 中国低代码行业竞争格局:BAT、用友、金蝶纷纷入局

    前文我们分析了低代码行业的市场规模和应用价值 文中提到过 中国目前的低代码行业已经起步且不乏行业巨头的加入 那么中国目前的低代码行业形成了怎样的竞争格局呢 本文将对此展开分析 2016年起 低代码概念开始在国内兴起 当年该行业总共有10起融
  • 用 EasySysprep 4 封装XP图文教程

    根据文件内的教程一步一步的操作就可以了 基本上是傻瓜式的哦 下载地址 http pan baidu com s 1gdjhP0B
  • C语言基础入门详解三

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 一 C语言之函数指针 include
  • SQL进阶_2

    自连接 针对相同的表进行的连接被称为 自连接 self join 面向对象语言以对象的方式来描述世界 而面向集合语言 SQL 以集合的方式来描述世界 自连接技术充分体现了 SQL 面向集合的特性 特性 1 可重排列 排列 组合 组合 有顺序
  • 基于stm32f103vc的智能小车——超声波避障部分

    智能小车的超声波避障实现过程 在硬件综合训练这门课程中 我们以小组的形式完成了基于stm32f103vc的智能小车的制作 实现的主要功能有 遥控 避障 语音控制 人脸识别以及舵机控制摄像头旋转 其中我主要负责的是stm32板的开发 以下是超
  • hive 分区表和数据产生关联三种方式

    写在前面 想要从hive数据库里面查询到数据就要求hive的元数据必须存在且元数据指向的的HDFS路径中也必须要存在实际的数据 1 方式一 上传数据后修复 使用的场景是历史数据积累了很多分区数据 推荐使用该方式 该方法将HDFS上的数据方向
  • windows建立隐藏账户

    目录 简介 一 隐藏账户创建 二 导出注册表 三 导入reg文件到注册表 四 深度隐藏 总结 简介 该方法在网上已有很多相关文章 我这里详细复现操作一下 测试系统 windows7 一 隐藏账户创建 先查看一下本机存在的账户 新建一个隐藏账
  • 回顾:TCP等计算机网络相关(抓包还没有

    TCP如何保证数据的正确性 保证数据内容不出错 答案 首部校验 但是这个校验机制不能够保证数据传输不出错 TCP协议中规定 TCP的首部字段中有一个字段是校验和 发送方将伪首部 TCP首部 TCP数据使用累加校验和的方式计算出一个数字 然后
  • STL : 栈 stack 与 队列 queue

    Stack include
  • App 崩溃(闪退)原因

    缓存垃圾过多 由于安卓系统的特性如果长时间不清理垃圾文件 会导致越来越卡也会出现闪退情况 运行的程序过多导致内存不足 应用版本兼容问题 如果应用版本太低 会导致不兼容 造成闪退 此外 有些新版本 在调试中 也会造成应用闪退 解决方法 如果是
  • Mysql常用函数大全

    一 数学函数 ABS x 返回x的绝对值 BIN x 返回x的二进制 OCT返回八进制 HEX返回十六进制 CEILING x 返回大于x的最小整数值 EXP x 返回值e 自然对数的底 的x次方 FLOOR x 返回小于x的最大整数值 G
  • rocketmq消息重试和死信队列

    1 消息重试 若Consumer消费某条消息失败 则RocketMQ会在重试间隔时间后 将消息重新投递给Consumer消费 若达到最大重试次数后消息还没有成功被消费 则消息将被投递至死信队列 消息重试只针对集群消费模式生效 广播消费模式不