RabbitMQ学习-Eleven

SpringBoot中RabbitMQ的消息确认和Return机制

1.再application.yml文件中开启消息确认机制和return机制

spring:rabbitmq:publisher-confirm-type: simplepublisher-returns: true

2.创建confirm和return监听

// MsgConfirmAndReturn.java 中的代码片段@Component
public class MsgConfirmAndReturn implements RabbitTemplate.ConfirmCallback, RabbitTemplate.ReturnCallback {private static final Logger logger = LoggerFactory.getLogger(MsgConfirmAndReturn.class);@Resourceprivate RabbitTemplate rabbitTemplate;@PostConstructpublic void init() {rabbitTemplate.setConfirmCallback(this);rabbitTemplate.setReturnCallback(this);}@Overridepublic void confirm(CorrelationData correlationData, boolean b, String s) {// 此方法用于监听消息确认结果(消息是否发送到交换机)if (b) {logger.info("-------消息成功发送到交换机");} else {logger.warn("-------消息发送到交换机失败");}}@Overridepublic void returnedMessage(Message message, int i, String s, String s1, String s2) {// 此方法用于return监听(当交换机分发消息到队列失败时执行)logger.warn("~~~~~~~交换机分发消息到队列失败");}
}

死信队列实现消息延迟

延迟队列:

什么是延时队列?

延迟队列--消息进入到队列之后,延迟指定的时间才能被消费者消费
AMQP协议和RabbitMQ队列本身是不支持延迟队列功能的,但是可以通过TTL(TimeTo Live)特件模拟延迟队列的功能
TTL就是消息的存活时间,RabbitMQ可以分别对队列和消息设置存活时间。在创建队列的时候可以设置队列的存活时间,当消息进入到队列并且在存活时间内没有消费者消费,则此消息就会从当前队列被移除。

延迟交换机主要帮我们解决什么问题

1)当我们的业务比较复杂的时候, 需要针对不同的业务消息类型设置不同的过期时间策略, name必然我们也需要为不同的队列消息的过期时间创建很多的Queue的Bean对象, 当业务复杂到一定程度时, 这种方式维护成本过高;

(2)就是队列的先进先出原则导致的问题,当先进入队列的消息的过期时间比后进入消息中的过期时间长的时候,消息是串行被消费的,所以必然是等到先进入队列的消息的过期时间结束, 后进入队列的消息的过期时间才会被监听,然而实际上这个消息早就过期了,这就导致了本来过期时间为3秒的消息,实际上过了13秒才会被处理,这在实际应用场景中肯定是不被允许的

 1.因为队列中有一个机制就是过期之后可以将消息进行转发

2.如果没有消费者的队列叫做死信队列;
3.当我们发送到队列1后,没有消费者消费一定会在30分钟后过期:然后过期转发到队列2,此时就实现了之前所说的三十分钟消费的效果

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

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

相关文章

GAMES101 完结篇(笔记和作业)

写在前面 我已经把笔记和作业代码放在了GitHub上,欢迎访问GAMES101笔记及作业 (github.com),如果对你有帮助,欢迎fork or star 下面我想简单介绍一下这里面的东西 Homework Homework文件夹里有0~8的作业框架,参考的其他大佬的代…

修改mobaxterm字体为全绿色

修改前: 修改步骤步骤: 红色方框里面的颜色都改为绿色,然后点击OK 重启mobaxterm即可:

vue+mars3d叠加展示arcgis动态服务

数据格式:使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

241205_给自己的应用加上语音助手功能

241205_给自己的应用加上语音助手功能 前面我们自己做了一个网易云音乐,但每次都要去点点点显得有点麻烦,所以我就考虑添加一些语音助手的功能。 其实当前在日常windows使用中,我觉得也就音乐播放需要一个语音助手交互,其他的功…

Navicat连接服务器MySQL

Navicat连接服务器MySQL 1. Navicat连接服务器MySQL2. 如何查看MySQL用户名和密码3. 修改MySQL登录密码4. 安装MySQL(Centos7)遇到错误和问题 1. error 1045 (28000): access denied for user ‘root’‘localhost’ (using password:yes) 1. Navicat连接服务器MySQL 选择数据…

得物新一代可观测性架构:海量数据下的存算分离设计与实践

一、引言 得物作为全球领先的潮流网购社区,日益增长的用户和数据带来了巨大的技术挑战。当前,得物的可观测性平台每天生成数PB级Trace数据和数万亿条Span记录,要求平台具备高效的实时处理能力和低成本的数据存储解决方案。 传统的存算一体架…

​ 基于51单片机的智能公交车报站系统GPS定位语音播报智能安全检测人数统计

功能介绍 以51单片机为控制核心.LCD12864可显示当前年月日,星期,时间, 当前站名,经纬度,是否连接GPS,自动/手动模式,自带GPS定位,可实时显示经纬度;通过DS1302时钟芯片…

Gitee配置SSH公钥

采用SSH协议同步Git仓库代码的好处就是高效。在配置好SSH公钥后,不需要每次操作都要输入用户名和密码(主要针对命令行来说)。 以我个人项目为例。 生成 SSH 公钥 1. 通过命令 ssh-keygen 生成 SSH Key: ssh-keygen -t ed25519…

CV(2)-插值和卷积

前言 仅记录学习过程,有问题欢迎讨论 看看年前可以学到哪。 频率: 灰度值变化程度的指标,是灰度再平面上的梯度幅值: 幅值: 是在一个周期内,交流电瞬时出现的最大绝对值,也是一个正弦波,波…

D362 php+mysql旅游服务网站的设计与实现 源码 配置 文档 全套资料

旅游服务网站的设计与实现 1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取 1.摘要 近几年,随着我国国民经济和信息技术的迅速发展,旅游项目的开发和建设,已是我国旅游业发展重要经济来源之一,我国旅游业近几年的…

python——列表

目录 一,选择题 二,判断题 三,列表的思维导图 一,选择题 1.已知列表 xlist(range(9)),那么执行之后,x的值为( D ) A. [1,3,5,7,9] B.[1,3,5,7] C.[0,1…

JAVA面试基础(总结了很多)

最近帮整理了一份JAVA的面试基础,不过很基础后面还回继续更新。 java的专业技能 2.1 java的基础部分 2.1.1 简单讲一下java的跨平台原理 由于各操作系统(windows,liunx等)支持的指令集,不是完全一致的。就会让我们的程序在不同的操…

基于SpringBoot的社区医院管理系统(代码+论文)

🎉博主介绍:Java领域优质创作者,阿里云博客专家,计算机毕设实战导师。专注Java项目实战、毕设定制/协助 📢主要服务内容:选题定题、开题报告、任务书、程序开发、项目定制、论文辅导 💖精彩专栏…

linux下使用gdb运行程序,查看程序崩溃原因

1.什么是gdb? gdb 是 GNU Debugger 的缩写,是一个功能强大的用于调试程序的开源调试器工具。它可以帮助开发人员诊断和解决程序中的错误、跟踪程序执行过程、查看变量的值等。gdb 支持多种编程语言,包括 C、C、Objective-C、Fortran 等,并可…

代发考试战报:12月近几日通过,题库已经更新至12月5号

代发考试战报:12月近几日通过,题库已经更新至12月5号,考试大约会遇到几个新题,就算遇到的新题全错,也不影响考试通过,HCIA-PM 12月2号上海通过,售前L3 H19-435 HCSP-Storage 存储 上海通过&…

使用Kubernetes部署MySQL+WordPress

目录 前提条件 部署MySQL和WordPress 编写yaml文件 应用yaml文件 存在问题及解决方案 创建PV(持久化卷) 创建一个PVC(持久化卷声明) 部署添加PVC 查看PV对应的主机存储 删除资源 查看资源 删除deployment和service 查看主机数据 删除PVC和PV 删除主机数据 前提条…

深入解析 Nginx:基础介绍到原理分析及案例实践

引言 Nginx(“Engine-X”)是一个高性能的 HTTP 和反向代理服务器,广泛应用于 Web 服务、负载均衡、API 网关、反向代理、静态资源服务器等多种场景。由于其高效的性能、低资源消耗和灵活的配置,Nginx 成为众多互联网公司、企业以…

Apache HTTPD多后缀解析漏洞

进入靶场 上来就是一个文件上传的功能 经过尝试,发现只有jpg,png,gif文件能上传上去,而题目又说了,这个是Apache的中间件,Apache文件解析漏洞涉及到一个Apache解析文件的特性,Apache默认一个文…

JavaScript(二)

1.JavaScript 操作符 2.JavaScript 流程控制 3.JavaScript 循环 4.JavaScript 字符串方法 5.JavaScript 数组方法 知识点一 操作符 变量声明 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Ti…