RabbitMQ+springboot用延迟插件实现延迟消息的发送

延迟队列:其实就是死信队列中消息过期的特殊情况

延迟队列应用场景:

在这里插入图片描述
可以用死信队列来实现,不过死信队列要等上一个消息消费成功,才会进行下一个消息的消费,这时候就需要用到延迟插件了,不过要线在docker上装一个插件

安装过程(Linux【Docker】)

前置条件是在Docker中部署过RabbitMq。

1、打开你的远程工具,首先查看docker中已有的容器,主要是为了查看rabbitmq的容器ID

2、将本地下载好的压缩包传到服务器某文件夹下,然后将其复制到Docker中的RabbitMq容器中的plugins文件夹下。

docker cp /home/rabbitmq_delayed_message_exchange-3.8.0.ez a687ef46141b:/plugins

3、进入容器查看该目录下是否有该压缩包。

进入容器命令:(通过容器号或者容器名)

docker exec -it a687ef46141b bash

4、同样在容器中的命令行执行一下命令添加插件。

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

5、退出容器,重启该容器。

6、在管理端即同样可以看到新增了一种交换机模式。

总结:以上就是RabbitMQ的延迟插件的安装过程!

基于插件的延迟队列DEMO

成功安装RabbitMQ的延迟插件之后,我们就可以尝试写一个延迟队列来验证一下是否可以解决上述问题。

首先我们的测试环境是在一个Springboot的框架下完成!

1、最先写配置类

/*** 定义延迟交换机*/
@Configuration
public class RabbitMQDelayedConfig {//队列private static final String DELAYQUEUE = "delayedqueue";//交换机private static final String DELAYEXCHANGE = "delayedExchange";@Beanpublic Queue delayqueue(){return new Queue(DELAYQUEUE);}//自定义延迟交换机@Beanpublic CustomExchange delayedExchange(){Map<String, Object> arguments = new HashMap<>();arguments.put("x-delayed-type","direct");/*** 1、交换机名称* 2、交换机类型* 3、是否需要持久化* 4、是否需要自动删除* 5、其他参数*/return new CustomExchange(DELAYEXCHANGE,"x-delayed-message",true,false,arguments);}//绑定队列和延迟交换机@Beanpublic Binding delaybinding(){return BindingBuilder.bind(delayqueue()).to(delayedExchange()).with("sectest").noargs();}
}

2、先写生产者

/*** 基于插件的延迟队列* 消息生产者*/
@Service
@Slf4j
public class DelayMQSender {@Autowiredprivate RabbitTemplate rabbitTemplate;public void sendmsg(String message,Integer delaytime){log.info("当前时间:{},发送时长{}信息给延迟队列:{}",new Date().toString(),delaytime,message);rabbitTemplate.convertAndSend("delayedExchange","sectest",message,msg->{//设置发送消息的延长时间 单位:msmsg.getMessageProperties().setDelay(delaytime);return msg;});}
}

3、再写消费者

/*** 基于插件的延迟队列* 消息的消费者*/
@Service
@Slf4j
public class DelayMQReceiver {@RabbitListener(queues = "delayedqueue")public void receivemsg(Message messages){String msg = new String(messages.getBody());log.info("当前时间:{},接收时长信息给延迟队列:{}",new Date().toString(),msg);}
}

4、进行测试

将模拟请求放在了一个简易的网页上,点击后输出如下结果,证明当先发送了20s延时的消息,再发送2s延时的消息,在2s后消息正常被消费,基于插件的延迟队列完美解决了问题。

**【思考】:**如果在实际业务场景中使用延迟队列的话,那就需要服务端在消息被消费之后主动告诉前端消费的结果,如果是这样的话,那么Ajxs的通信方式是单双工通信,只能前端主动访问后端并返回结果,后端无法主动发送消息,应该使用Websocket来进行通信才可,websocket是长连接,不同于http的短连接,可以实现全双工通信,前后端都可以主动发送消息。

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

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

相关文章

飞桨中的李宏毅课程中的第一个项目——PM2.5的预测

所谓的激活函数&#xff0c;就是李宏毅老师讲到的sigmoid函数 和 hard sigmoid函数 &#xff0c;ReLU函数那些 现在一点点慢慢探索&#xff0c;会成为日后想都做不到的经历&#xff0c;当你啥也不会的时候&#xff0c;才是慢慢享受探索的过程。 有一说一&#xff0c;用chatGP…

Linux elementary-ubuntu 使用笔记

Linux elementary-ubuntu 使用笔记 有很多功能对应多个命令&#xff0c;在下只记录对于本人而言最容易记住的 有些电脑安装双系统时&#xff0c;会出现进入不了界面的情况&#xff0c;一般是由于独显的影响&#xff0c;所以需要在启动命令中添加屏蔽独显命令 acpi_osiLinux no…

Spring Boot进阶(59):【实战教程】使用Spring Boot集成InfluxDB时序数据库,打造高效数据监控系统!

1. 前言&#x1f525; 前几期我们陆续讲解了Mysql、Redis、PostgreSQL、MongoDB等数据库集成及使用案例&#xff0c;接下来&#xff0c;bug菌继续给同学们介绍一种特殊的数据库&#xff0c;到底是什么数据库呢&#xff1f;它就是InfluxDB(时序数据库)&#xff0c;InfluxDB是一款…

带你启用window10专业版系统自带的远程桌面

启用window10专业版系统自带的远程桌面 文章目录 启用window10专业版系统自带的远程桌面前言1.找到远程桌面的开关2. 找到“应用”项目3. 打开需要远程操作的电脑远程桌面功能 总结 前言 Windows操作系统作为应用最广泛的个人电脑操作系统&#xff0c;在我们身边几乎随处可见。…

网站安全检测、漏洞检测、dedecms本地文件包含

可以在“站长工具”或“360网站安全检测”进行网站安全检测 以下是个人遇到的网站安全检测问题&#xff1a; 这是修改后的检测返回的信息 之前是存在高危漏洞1个页面 【高危】dedecms本地文件包含 找到Include/payment/alipay.php Include/payment/yeepay.php 从下载补丁的地…

网站漏洞检测服务 URL跳转漏洞的检测与修复

网站渗透测试是指在没有获得网站源代码以及服务器的情况下&#xff0c;模拟入侵者的攻击手法对网站进行漏洞检测&#xff0c;以及渗透测试&#xff0c;可以很好的对网站安全进行全面的安全检测&#xff0c;把安全做到最大化。在挖掘网站漏洞的时候我们发现很多网站存在域名跳转…

Web自动化漏洞检测工具:Xray

** Web自动化漏洞检测工具&#xff1a;Xray ** 下载地址: https : //github.com/chaitin/xray/releases Xray是一款功能强大的安全评估工具&#xff0c;有以下特性&#xff1a; 1.检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测&…

php网站漏洞检测对sql注入漏洞防护

近日&#xff0c;我们SINE安全对metinfo进行网站安全检测发现&#xff0c;metinfo米拓建站系统存在高危的sql注入漏洞&#xff0c;攻击者可以利用该漏洞对网站的代码进行sql注入攻击&#xff0c;伪造恶意的sql非法语句&#xff0c;对网站的数据库&#xff0c;以及后端服务器进行…

网站漏洞检测

除了可以用nagios、nessus、cacti检测网站漏洞外&#xff0c;我们还可以利用webscan.360.cn在线检测网站漏洞&#xff0c;检测出漏洞外还提供详细的解决方案&#xff0c;实在值得一试。因为webscan.360.cn要提供ftp等账户信息来验证用户&#xff0c;然后再检测漏洞&#xff0c;…

漏洞挖掘 | 通用型漏洞挖掘思路技巧

搜索公众号&#xff1a;白帽子左一&#xff0c;每天更新技术干货&#xff01;作者&#xff1a;ajie 转自地址&#xff1a;https://xz.aliyun.com/t/10539 0x01 前言 大概是在上半年提交了某个CMS的命令执行漏洞&#xff0c;现在过了那么久&#xff0c;也想通这次现挖掘通用型漏…

WEB漏洞挖掘——思路指南

本篇主要记录了WEB漏洞挖掘学习过程中的信息收集部分&#xff0c;web渗透最重要的便是信息收集&#xff0c;希望以下内容能够给予同在漏洞挖掘学习中的小伙伴一些帮助&#xff0c;若有不足之处可以告诉我&#xff0c;大家一起努力进步。大佬路过也请多多指点&#xff01; 目录…

常见的Web漏洞——XSS

目录 XSS简介 XSS原理及分类 反射型XSS 存储型XSS 基于DOM的XSS XSSer的使用 至少有一个的参数&#xff1a; 可选的参数&#xff1a; 检查选项 选择攻击向量 绕过防火墙选项 绕过器选项 特殊技术 最后注入选项 特殊最后注入选项 报告导出 XSSer演示 BeEF-XSS…

【burpsuite安全练兵场-服务端6】信息泄露漏洞-5个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

XSS攻击是怎么回事?记录一下

title: XSS攻击 date: 2023-08-27 19:15:57 tags: [XSS, 网络安全] categories: 网络安全 今天学习了一个网络攻击的手段&#xff0c;XSS攻击技术&#xff0c;大家自建网站的朋友&#xff0c;记得看看是否有此漏洞。 &#x1f388; XSS 攻击 全称跨站脚本攻击 Cross Site Sc…

基于JAVA_Swing的图形化GUI漏洞扫描工具开发的编程思维

文章目录 前言一、工具外观整体设计二、漏洞检测类模块总结2022年6月27日更新此篇 前言 CSDN博客有很长一段时间没有更新&#xff0c;漏洞复现的文章也没有经常发了&#xff0c;原因是因为我这段时间在做一件大事&#xff0c;并且这件大事已经做完啦&#xff01;&#xff01;&…

Xray工具~(Web自动化漏洞检测)

Web自动化漏洞检测~Xray工具 下载地址: GitHub&#xff1a;https : //github.com/chaitin/xray/releases Xray 是一款功能强大的安全评估工具,主要特性有: 检测速度快。发包速度快; 漏洞检测算法高效。 支持范围广。大至 OWASP Top 10 通用漏洞检测&#xff0c;小至各种 CMS 框…

Arp欺骗截cookies入侵“中国黑客”网站(图)

放假回家&#xff0c;暂时没有自己的电脑&#xff0c;只能跑网吧。打开ie就看见网吧主页。。。这个网吧是我家附近作的最好的。在这里玩过几次&#xff0c;也提醒过老板一些漏洞。不过漏洞天天更新么~ 是个2级域名111.lzbiz.com。换成www&#xff0c;竟然是个黑客网站。。。名…

目标URL存在跨站漏洞

URL存在跨站漏洞 &#x1f696;漏洞复现&#x1f696;漏洞描述&#x1f696;解决方法&#x1f696;对于开发&#x1f696;对于安全操作&#x1f696;对于质量保证 &#x1f696;漏洞复现 记录学习中遇到的问题 该页面存在反射型XSS payload citynull&accountnull&pa…

我的第一次真实对国外某购物平台web漏洞挖掘

&#xff08;真实世界&#xff09;我的第一次真实对国外某购物平台web漏洞挖掘 开放重定向 - 低危XSS - 低危 这两组合起来就完全不一样一点的&#xff0c;个人觉得比原本高一些 危害&#xff1a;窃取用户敏感数据、用户cookie、钓鱼操作 等… 前言 这是我第一次&#xff…

对某代刷网站的渗透测试

0x01 今天闲来无事&#xff0c;在网上冲浪看帖&#xff0c;看到有个人发了一个代刷网站链接&#xff0c;出于好奇就点进去看了下&#xff0c;一看&#xff0c;好家伙&#xff0c;业务还挺多啊。可惜都要钱&#xff0c;咱可没钱&#xff01; 0x02 然后便想看看有没有办法白嫖&…