什么是RabbitMQ的死信队列

news2024/10/5 22:21:50

RabbitMQ的死信队列,是一种用于处理消息,处理失败或无法路由的消息的机制。它允许将无法被正常消费的消息重新路由到另一个队列,以便稍后进行进一步的处理,分析或排查问题。

当消息队列里面的消息出现以下几种情况时,就可以会被称为 死信

1.消息处理失败:当消费者由于代码错误,消息格式不正确,业务规则冲突等原因无法成功处理一条消息时候,这条消息可以被标记为死信。

2.消息过期:在rabbitmq中,消息可以设置过期时间。如果消息在规定的消息内没被消费,它可以被认为是死信并被发送到死信队列。

3.消息被拒绝:当消息者明确拒绝一条消息时,它可以被标记为死信并发送到死信队列。拒绝消息的原因可能是消息无法处理,或者消费者认为消息不符合处理条件。

4.消息无法路由:当消息不能被路由到任何队列时,例如,没有匹配的绑定关系或路由键时,消息可以被发送到死信队列。

当消息变成死信之后,如果配置了死信队列,它将被发送到死信交换机,死信交换机将死信投递到一个队列上,这个队列就是死信队列。但是如果没有配置死信队列,那么这个消息将被丢弃。

rabbitMQ的死信队列其实有很多作用,比如我们可以借助他实现延迟消息,进而实现订单的到期时间,超时关单等业务逻辑。 

扩展:

配置死信队列

在rabbitmq中,死信队列通常与交换机(Exchange)和队列(Queue)之间的绑定关系一起使用。要设置死信队列,通常需要以下步骤:

1.创建死信队列:定义一个用于存储死信消息的队列

2.创建死信交换机:为死信队列定义一个交换机,通常是一个direct类型的交换机。

3.将队列与死信交换机绑定:将主要队列和死信交换机绑定,以便于无法处理的消息能够被转发到死信队列。

4.在主要队列上设置死信属性:通过设置队列的x-dead-letter-exchange和x-dead-letter-routing-key属性,指定死信消息应该被发送到哪个交换机和路由键。

当消息被标记成死信时,它将被发送到死信队列,并可以由应用程序进一步处理,审查或记录。这种机制有助于增加消息处理的可靠性和容错性,确保不丢失重要消息,并提供了一种处理失败消息的方式。

以下是一个配置死信队列的方式:

这样,消费者在消费的时候,分别监听主队列和死信队列就可以了:

 

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

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

相关文章

UE4c++ 材质功能大全(想起来就补充一个)

前言:才想起写一个这个文档,前期内容较少,其他内容,我也只会想起来加一加! 材质功能大全 竖直百分比进度HSV To RGBRGB转灰度值AlphaComosote(Premultiplied Alpha)预乘 转 Translucent (sRGB与…

世微AP9235B 恒流输出 升压型DC/DC转换器 背光驱动芯片

概述 AP9235B 系列是一款固定振荡频率、恒流输出的升压型DC/DC转换器,非常适合于移动电话、PDA、数码相机等电子产品的背光驱动。输出电压可达23V ,3.2V输入电压可以驱动六个串联LED, 2.5V输入电压可以驱动两路并联LED(每路串联三…

仓储管理系统(WMS) 的研发历程-行业分析

行业历史 首先我们先了解一下仓储的行业历史,行业现状以及发展趋势,正所谓知己知彼才能百战不殆。 其实传统意义的仓库早就有了,他的职能就是存储和保护物品的一种方式,原始人类的山洞用于存储食物和其他重要的物品。 随着农业的发…

Vue3学习记录(三)--- 组合式API之生命周期和模板引用

一、生命周期 1、简介 ​ 生命周期,指的是一个 Vue 实例从创建到销毁的完整阶段,强调的是一个时间段。 ​ 生命周期钩子函数,指的是 Vue 实例提供的内置函数,函数的参数为一个回调函数。这些钩子函数会在实例生命周期的某些固定…

鸿蒙原生应用开发-ArkTS语言基础类库概述

ArkTS语言基础类库是HarmonyOS系统上为应用开发者提供的常用基础能力,主要包含能力如下图所示。 1.提供异步并发和多线程并发的能力。 支持Promise和async/await等标准的JS异步并发能力。 TaskPool为应用程序提供一个多线程的运行环境,降低整体资源的消耗…

互联网电商一站式服务——商品评论❀

API接口是一种商业软件开发工具,可以帮助开发者实现业务需求。通过 API接口,开发人员可以快速搭建自己的应用,实现数据采集分析和处理,也可以通过这个接口完成与其它系统的集成与通信。电商API就是各大电商平台提供给开发者访问平…

redis10 应用问题(穿透、击穿、雪崩、分布式锁)

思维草图 缓存穿透 查询不存在的数据,穿透redis缓存,请求直接攻击后端db。 问题 当系统中引入redis缓存后,一个请求进来后,会先从redis缓存中查询,缓存有就直接返回(相当于一道隔离闸,保护db…

记录踩过的坑-macOS下使用VS Code

目录 切换主题 安装插件 方法1 方法2 搭建Python开发环境 装Python插件 配置解释器 打开项目 打开终端 INFO: pip is looking at multiple versions xxxx,过了很久后报错 方法1 方法2 ​​​​​​​ 切换主题 安装插件 方法1 方法2 搭建Python开发环境…

[Python人工智能] 四十二.命名实体识别 (3)基于Bert+BiLSTM-CRF的中文实体识别万字详解(异常解决中)

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解如何实现中文命名实体识别研究,构建BiGRU-CRF模型实现。这篇文章将继续以中文语料为主,介绍融合Bert的实体识别研究,使用bert4keras和kears包来构建Bert+BiLSTM-CRF模型。然而,该代码最终结…

外汇天眼:投资房地产轻松获利12%?台湾上百人因「庞氏骗局」损失6000万

现代社会因为金融体系不断发展与改革,衍生出各式各样投资理财的形式与标的,其中房地产因为具有对抗通胀、满足居住需求的双重特性,一直被视为一种稳健的投资标的。 然而,日前竟有多位民众向媒体爆料,表示碰到非法吸金的…

基于springboot+vue的周边游平台个人管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

使用华为云云函数functiongraph

之前使用腾讯云serverless,但是突然开始收费了。所以改用functiongraph 首先登陆华为云。 目录 1.登录华为云 2.在控制台找到functiongraph并开通 3.添加依赖包: 3.1 制作依赖包 3.2引入依赖包 4.发送请求 4.1直接发送 4.1.1uri 4.1.2 请求头…

稀碎从零算法笔记Day7-LeetCode:罗马数字转整数

题型:字符串转化、找规律 链接:13. 罗马数字转整数 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 …

自然语言处理之语言模型(LM)介绍

自然语言处理(Natural Language Processing,NLP)是人工智能(Artificial Intelligence,AI)的一个重要分支,它旨在使计算机能够理解、解释和生成人类语言。在自然语言处理中,语言模型&…

拓尔微代理商 TMI3252T 600kHz 18V 2A同步COT降压转换器

TMI3252/S/T是高效率600kHz,恒定导通时间 (COT) 控制同步模式降压型DC-DC转换器,能够提供高达2A电流。TMI3252/S/T集成主要具有极低 RDS(ON) 的开关和同步开关以尽量减少传导损耗。低输出电压纹波和小尺寸的…

前端H5动态背景登录页面(上)

最近一段时间看一些关于前端的东西&#xff0c;下面分享两个非常不错的前端动态背景登陆页面&#xff0c;还有几个等后面有时间了再整理。 1、彩色气泡登录页面 下面是源代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8…

跨地域传文件时 面临的安全、效率等问题要如何解决?

近年来&#xff0c;企业在异国、异地设立分支机构的越来越多&#xff0c;在日常经营中&#xff0c;企业总部和分支机构间存在平行、垂直及互相交叉的管理模式和业务往来需求&#xff0c;因此&#xff0c;大型企业存在必然的跨地域传文件场景&#xff0c;比如跨地理域文件交换、…

VS2015报错:error MSB8020和MSB8036的解决方案

VS2015编译报错&#xff1a;error MSB8020 提示信息&#xff1a;error MSB8020: The build tools for v141 (Platform Toolset ‘v141’) cannot be found. To build using the v141 build tools, please install v141 build tools. Alternatively, you may upgrade to the c…

(MATLAB)第十二章-数列与极限

目录 12.1 数列 12.1.1 数列求和 1. 累计求和函数sum() 2. 忽略NaN累计求和函数 nansum() 3. 求此元素位置之前的元素和函数cumsum() 4. 求梯形累计和函数cumtrapz() 12.1.2 数列求积 1. 元素连续相乘函数 prod() 2. 求累计积函数 cumprod() 3. 阶乘函数 ffactorial(n…