Rabbitmq的死信队列与如何利用死信队列实现延迟队列

如果设置了队列的 TTL 属性,那么一旦消息过期,就会被队列丢弃(如果配置了死信队列被丢到死信队列中)。而如果仅设置消息的 TTL 属性,即使消息过期,也不一定会被马上丢弃,因为消息是否过期是在即将投递到消费者之前判定的,如果当前队列有严重的消息积压情况,则已过期的消息也许还能存活较长时间;

还需要注意的一点是,如果不设置 TTL,表示消息永远不会过期,如果将 TTL 设置为 0,则表示除非此时可以直接投递该消息到消费者,否则该消息将会被丢弃。

上文中提到的问题,确实是一个问题,如果不能实现在消息粒度上的 TTL,并使其在设置的TTL 时间及时死亡,就无法设计成一个通用的延时队列。那如何解决呢,我们可以通过 Rabbitmq 自带的延时队列插件解决这个问题。

这个就是声明一个延迟交换机实现需求
在我们自定义的交换机中,这是一种新的交换类型,该类型消息支持延迟投递机制 消息传递后并不会立即投递到目标队列中,而是存储在 mnesia(一个分布式数据系统)表中,当达到投递时间时,才投递到目标队列中。

总结:

RabbitMQ 实现延迟队列有两种方式,一种是通过死信来实现,其中又细分为设置队列的TTL和消息的TTL两种,原理就是消息在指定的时间过期后会通过死信交换机进入到死信队列,最后被消费者消费,不过基于消息到TTL来实现会存在消息积压而导致没有在后面发送到消息没有在指定延迟时间被消费的情况,因为该情况本质上是遵循先来先到的原则,先发送的消息延迟时间到了后才继续处理后面的消息;另一种是通过 RabbitMQ 的插件来实现,该插件的原理就是是消息在交换机处延迟,也就是生产者发送消息到延迟交换机等待指定时候才路由到队列中由消费者消费,该方式简单而且能避免上述问题,只需要一个延迟交换机即可实现,不需要死信交换机和死信队列。

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

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

相关文章

HTML常用标签和CSS的运用

目录 1.HTML标签 1.1 文档结构标签 1.2 文本格式标签 1.3 列表标签 1.4 链接和媒体标签 1.5 表格标签 1.6 表单标签 1.7 分区和布局标签 1.8 元数据标签 2.css样式 2.1 字体样式 2.2 文本样式 2.3 背景样式 2.4 边框样式 2.5 间距样式 2.6 宽度和高度 2.7 显示…

AI算力租赁是什么,哪些行业会有需求?

一、AI算力租赁的定义与概述 AI算力租赁是指基于人工智能(AI)应用需求,将所需的计算能力(即算力)通过租赁服务的方式提供给企业和个人用户。这种服务允许用户根据需要租用人工智能计算资源,如图形处理单元…

星座运势网源码/星座屋接口/星座配对网站PHP程序带采集

星座运势网源码/星座屋接口/星座配对网站PHP程序带采集 演示站: https://xz.wengu8.com/ 程序说明: 1、前端模板PC手机端自适应。 2、每日运势/当月/当年星座运势调用星座屋API接口,每天只采集一次接口,后保存到本地调用本地…

科普文:万字梳理高性能 Kafka快的8个原因

概叙 科普文:万字详解Kafka基本原理和应用-CSDN博客 科普文:万字梳理31个Kafka问题-CSDN博客 我们都知道 Kafka 是基于磁盘进行存储的,但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。 在座的…

Zookeeper未授权访问漏洞

Zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。Zookeeper的默认开放端口是2181。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper,通过服务器收集敏感信息或者…

TiDE时间序列模型预测(Long-term Forecasting with TiDE: Time-series Dense Encoder)

时间序列预测,广泛用于能源、金融、交通等诸多行业,传统的统计模型,例如ARIMA、GARCH等因其简单高效而被广泛使用,近年来,随着深度学习的兴起,基于神经网络的预测模型也备受关注,表现出强大的预…

电线电缆测厚双测径仪联控测厚系统

关键字:线缆测厚系统,绝缘层测厚设备,电线皮套测厚,电缆绝缘层测厚, 产品简介: 双测径仪联控测厚系统的工作原理基于光电测量技术。一台测径仪测量电缆的成品直径,另一台测径仪测量线芯的直径。通过这些测量数据,系统计算出绝缘层或护套层的厚…

结构开发笔记(一):外壳IP防水等级与IP防水铝壳体初步选型

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140928101 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

mysql的 undo log、redo log、bin log、buffer pool

文章目录 Buffer Pool为什么需要Buffer PoolBuffer Pool 缓存了什么 Redo log为什么需要 redo log?redo log 什么时候刷盘?redo log 文件写满了怎么办? undo log 本文章内容都来自小林coding博主,基于他的文章内容,加一…

PXE的使用

配置前提 1、挂载镜像源,可正常下载软件 [rootredhat-7 ~]# mkdir -p /rhel7 ----创建挂载点目录 [rootredhat-7 ~]# mount /dev/sr0 /rhel7/ ----挂载镜像源至挂载点(临时挂载,重启失效)[rootredhat-7 ~]# vim /etc/yum.repos.…

C++ | Leetcode C++题解之第319题灯泡开关

题目: 题解: class Solution { public:int bulbSwitch(int n) {return sqrt(n 0.5);} };

[米联客-安路飞龙DR1-FPSOC] UDP通信篇连载-02 MAC层程序设计

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 ht…

用Python实现炫酷的代码雨效果(完整代码)

导语 在这个数字时代,编程不仅是一项技能,更是一种艺术。想象一下,在你的屏幕上,一行行代码如同雨滴般落下,闪烁着技术的光芒,是不是既酷炫又充满科技感?今天,我们就将使用 Python …

哪个品牌的超声波清洗机最好?好用的超声波清洗机排名

随着人们对生活质量的提升,对健康也是越来越关注了,很多眼镜佩戴者也逐渐对眼部健康逐渐重视起来了,因为眼镜镜片的缝隙很容易有大量的灰尘和细菌,而超声波清洗机的出现,恰恰是可以针对于这些缝隙污垢清洁的&#xff0…

Android:Uniapp平台中接入即构RTC+相芯美颜

0 前言 前阵子使用Uniapp平台开发了一个跨平台app,并且接入了即构RTC后,今天想进一步丰富app的直播功能。之前有相芯美颜的开发经验,打算将相芯美颜接入即构RTC. **在DCloud插件市场找到了在即构RTC接入相芯美颜插件,https://ex…

CasaOS系统小主机Docker部署memos结合内网穿透打造私有云笔记

文章目录 前言1. 使用Docker部署memos2. 注册账号与简单操作演示3. 安装cpolar内网穿透4. 创建公网地址5. 创建固定公网地址 前言 本文主要介绍如何在CasaOS轻NAS系统设备中使用Docker本地部署开源云笔记服务memos,并结合cpolar内网穿透工具配置公网地址&#xff0…

50etf期权怎么可以买跌做空吗?

50ETF期权可以做买方也可以做卖方,并且50ETF期权还能够买涨买跌双向交易,50ETF期权可以看涨期权和看跌期权,所以50ETF期权是可以买跌做空的,并且50ETF期权是很适合进行做空操作的,下文为大家介绍50etf期权怎么可以买跌…

SQL进阶技巧:Hive如何巧解和差计算的递归问题?【应用案例2】

目录 0 问题描述 1 数据准备 2 问题分析 3 小结 0 问题描述 累计值分析模型是一种用于分析和预测累计值数据的统计模型。它主要用于处理随时间积累的数据,例如销售额、用户数量、网站访问量等。累计值分析模型的目的是通过对历史数据的分析,揭示数据的趋势和模式,以便进…

日撸Java三百行(day13:链表)

目录 一、链表的基础知识 二、链表的代码实现 1.链表创建 2.链表遍历 3.链表定位查找 4.链表插入 5.链表删除 6.数据测试 7.完整的程序代码 总结 一、链表的基础知识 在之前顺序表的学习中,我们其实提到过链表。链表它是线性表在不同的物理存储方式下派生…

谷歌账号被停用后,申诉没有反馈或者被拒绝后怎么办?附:谷歌账号申诉信要点和模板

有一些朋友在登录谷歌账号的时候,或者在是用谷歌账号的过程中突然被强制退出来,然后再次登录的时候就遇到了下面的提醒:您的账号已停用,而且原因通常是两大类:1)谷歌账号与其他多个账号一起创建或使用的&am…