项目实战之RabbitMQ重试机制进行消息补偿通知
🧑💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。

文章目录
- 🌟架构图
- 🌟application.properties
- 🌟异常MQ配置
- 🌟异常MQ消费者
- 🌟注意
- 🌟写在最后
🌟架构图

🌟application.properties
##----------rabbit配置--------------
spring.rabbitmq.host=49.233.48.98
spring.rabbitmq.port=5672
#需要手工创建虚拟主机
spring.rabbitmq.virtual-host=dev
spring.rabbitmq.username=admin
spring.rabbitmq.password=password
#消息确认方式,manual(手动ack) 和auto(自动ack); 消息消费重试到达指定次数进到异常交换机和异常队列,需要改为自动ack确认消息
spring.rabbitmq.listener.simple.acknowledge-mode=auto
#开启重试,消费者代码不能try catch捕获异常,要抛出异常
spring.rabbitmq.listener.simple.retry.enabled=true
#最大重试次数
spring.rabbitmq.listener.simple.retry.max-attempts=4
# 重试消息的时间间隔,5秒
spring.rabbitmq.listener.simple.retry.initial-interval=5000
🌟异常MQ配置
@Configuration
@Slf4j
public class ErrorRabbitMQConfig {/*** 异常交换机*/private String errorExchange="error.exchange";/*** 异常队列*/private String errorQueue="error.queue";private String errorRoutingKey="error.routing.key";@Autowiredprivate RabbitTemplate rabbitTemplate;/*** 创建异常交换机* @return*/@Beanpublic TopicExchange errorTopicExchange(){return new TopicExchange(errorExchange,true,false);}/*** 创建异常队列* @return*/@Beanpublic Queue errorQueue(){return new Queue(errorQueue,true);}/*** 建立绑定关系* @return*/@Beanpublic Binding bindingErrorQueueAndExchange(){return BindingBuilder.bind(errorQueue()).to(errorExchange()).with(errorRoutingKey);}/***消息重新发布到异常MQ*/@Beanpublic MessageRecoverer messageRecoverer(){return new RepublishMessageRecoverer(rabbitTemplate,errorExchange,errorRoutingKey);}
}
🌟异常MQ消费者
@Component
@Slf4j
@RabbitListener(queuesToDeclare = { @Queue("error.queue") })
public class ErrorMQListener {@RabbitHandlerprivate void errorMessageHandler(EventMessage eventMessage, Message message, Channel channel) throws IOException {log.info("监听到消息:{}",message);//进行消息消费//发送邮箱通知、告警服务}
}
🌟注意
- 业务MQ消费者代码逻辑记得往外抛异常,进行try-catch了也要往外抛。
- 消息消费重试,达到重试次数进入到异常交换机、队列。消息确认方式需要改为自动ack。
🌟写在最后
有关于项目实战之RabbitMQ重试机制进行消息补偿通知到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。

相关文章:
项目实战之RabbitMQ重试机制进行消息补偿通知
🧑💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 文章目录 🌟架构图&#x…...
MySQL之数据库的创建指令
创建数据库 #创建数据库指令: CREATE DATABASE hsp_db1 #创建名字为关键字的数据库,为规避关键字,可以使用反引号 CREATE DATABASE CREATE#删除数据库指令: DROP DATABASE hsp_db1 DROP DATABASE CREATE如果不指定在这里插入代码片…...
[网络安全]批处理(脚本)编写
Windows DOS命令Linux 一.作用: 自上而下成批次处理每一条命令,直到执行到最后一条 二.如何创建批处理: 扩展名:.bat创建办法:新建一个记事本,把扩展名改为 .bat 三.编辑方法: 右击 -编辑 1).一行一个命令 四.批处理命令: pause 暂停 (及时后面有命令,也不执行)echo …...
事件驱动架构 vs. RESTful架构:通信模式对比与选择
1. 通信风格 事件驱动架构(EDA) 是一种异步通信风格,组件之间通过产生和消费事件进行通信。 事件是表示系统中重大变化或事件的消息,并分发给感兴趣的组件。这种通信模型允许系统的不同部分之间进行解耦和动态交互。 组件充当事件…...
代码随想录算法训练营第五十二天| 300 最长递增子序列 674 最长连续递增子序列 718 最长重复子数组
目录 300 最长递增子序列 674 最长连续递增子序列 718 最长重复子数组 300 最长递增子序列 class Solution { public:int lengthOfLIS(vector<int>& nums) {vector<int>dp(nums.size(),1);//以i结尾的最长递增子序列的长度for(int i 0;i < nums.size()…...
leetcode 101.对称二叉树
学习这部分还是要多画图,多思考 101.对称二叉树 题目 给你一个二叉树的根节点 root , 检查它是否轴对称。 题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 文字 和 画图 分析 明确结束条件和继续递归条件 判断是否对称…...
【本人新书】《OpenCV应用开发:入门、进阶与工程化实践》
写作初心 OpenCV作为开源的计算机视觉框架已经有超过20年的发展历程,OpenCV4是OpenCV目前为止最重要的里程碑版本。OpenCV4不仅包含了传统图像处理、图像分析、特征提取等模块的各种主流算法算子,还包含了深度学习模型部署与加速支持模块,兼…...
【Linux系统编程】进度条的编写
目录 一,进度条的必备知识 1,缓冲区的粗略介绍 2,回车与换行 二,进度条的初步制作 1,进度条的初步矿建 2,进度条的版本一 3,进度条的版本二 一,进度条的必备知识 1ÿ…...
互斥锁的原理
互斥锁(Mutex,全称Mutual Exclusion)是一种同步机制,用于确保在任意时刻,只有一个线程可以访问共享资源,从而防止数据竞争和不一致性。互斥锁的基本思想是在进入临界区之前,先获取锁;…...
Win10的SVN Adapter V1.0 中黄色感叹号 -- 解决
大部分都问题都可以通过: 关闭 SVN Adapter V1.0 在下载最新的 SVNDrv.sys替换 C:\Windows\System32\drivers 中的同名文件启动 SVN Adapter V1.0 就能成功 但是部分人的电脑 SVN Adapter V1.0 是有感叹号的,说明注册表有问题 先用 CCleaner 修复注册表…...
ubuntu20 安装docker
一.官网安装文档 (基本按官方文档安装) Install Docker Engine on Ubuntu | Docker Docs 二.安装步骤 1.docker 需要64位操作系统、linux内核要在3.1以上 #uname -r 2.卸载可能存在的旧版本 #sudo apt-get remove docker docker-engine docker-ce …...
HarmonyOS开发工具DevEco Studio的下载和安装
一、DevEco Studio概述 一、下载安装鸿蒙应用开发工具DevEco Studio 开发鸿蒙应用可以从鸿蒙系统上运行第一个程序Hello World开始。 为了得到这个Hello World,你需要得到这个Hello World的源代码,源代码是用人比较容易看得懂的计算机编程语言规范写的…...
SHELL21 格式化输出
awk BEGIN{FS""}{for(i1;i<NF;i){if((NF-i)%30&&i!NF) printf $i",";else printf $i};printf "\n"} nowcoder.txt这个 AWK 命令的目的是对文本文件 nowcoder.txt 中的每一行进行处理,将每三个字符插入一个逗号,…...
披荆斩棘的「矿区无人驾驶」,能否真正打开千亿级市场?
随着2022年备受瞩目的台泥句容矿无人驾驶运输项目硬核落地,以及相关科技公司开放该矿24小时无人矿卡生产运营直播以证明其项目并非在演示,2023年全国开启了大规模矿区无人驾驶商业化落地,堪称矿区无人驾驶元年。虽然我国矿区无人驾驶市场渗透…...
智能优化算法应用:基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.灰狼算法4.实验参数设定5.算法结果6.参考文献7.MA…...
论文阅读三——端到端的帧到凝视估计
论文阅读三——端到端的帧到凝视估计 主要内容研究问题文章的解题思路文章的主要结构 论文实验关于端到端凝视估计的数据集3种基线模型与EFE模型的对比在三个数据集中与SOTA进行比较 问题分析重要架构U-Net 基础知识 主要内容 文章从端到端的方法出发,提出了根据he…...
mysql 快捷登陆
要将 MySQL 的登录命令添加到环境变量中并为其创建别名,可以按照以下步骤进行操作: 1. 打开终端并编辑 /etc/profile 文件(使用所有用户的全局设置) vim /etc/profile 2. 在文件的末尾添加以下行来设置环境变量和别名 # 将 &q…...
理解排序算法:冒泡排序、选择排序与归并排序
简介: 在计算机科学中,排序算法是基础且重要的概念。本文将介绍三种常见的排序方法:冒泡排序、选择排序和归并排序。我们将探讨它们的工作原理、特点和适用场景,以帮助读者更好地理解和选择合适的排序方法。 冒泡排序 冒泡排序是…...
算法-02-排序-冒泡插入选择排序
一般最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。那么我们如何分析一个"排序算法"呢? 1-分析排序算法要点 时间复杂度:具体是指最好情况、最坏情况、平均情况下的时间复杂…...
流量异常-挂马造成百度收录异常关键词之解决方案(虚拟主机)
一.异常现象:流量突然暴涨,达到平时流量几倍乃至几十倍,大多数情况下因流量超标网站被停止。 二.排查原因: 1.首先分析web日志:访问量明显的成倍、几十倍的增加;访问页面不同;访问IP分散并不固…...
GCP 成本优化指南
5 分钟速览 我想… 用什么 预期效果 看钱花在哪了 Billing Reports + Cost Table 按服务/项目/标签拆分费用 费用超了自动告警 Budget Alerts 50%/80%/100% 阈值通知 深度分析费用趋势 BigQuery 费用导出 自定义 SQL 分析任意维度 降低计算成本 CUD / Spot VM 计算费用降 30%-7…...
Z-Image-Turbo-rinaiqiao-huiyewunv保姆级教程:如何将本地Turbo模型接入Discord Bot提供绘图服务
Z-Image-Turbo-rinaiqiao-huiyewunv保姆级教程:如何将本地Turbo模型接入Discord Bot提供绘图服务 你是不是也想过,让自己的Discord服务器里有一个专属的“画师”?当群友描述一个二次元角色时,这个Bot就能立刻画出来,而…...
全栈实战:在快马平台从零到一开发一个可部署的极客日报应用
今天想和大家分享一个最近在InsCode(快马)平台上完成的实战项目——极客日报全栈应用开发。这个项目从零开始,完整实现了前后端分离的Web应用开发流程,特别适合想系统性学习全栈开发的同学参考。 项目架构设计 整个应用采用经典的三层架构:前…...
2026年木蜡油定做厂家大盘点,究竟哪家才是行业首选?
在当今注重环保和品质的时代,木蜡油作为一种天然环保的涂料,受到了越来越多消费者的青睐。无论是室内外木器家具、木艺制品,还是全屋定制、装饰装修等领域,木蜡油都有着广泛的应用。然而,市场上木蜡油定做厂家众多&…...
无需配置环境,用快马平台5分钟搭建你的第一个java学生管理系统原型
最近在尝试用Java写一个简单的学生信息管理系统原型,发现用传统方式从零开始搭建实在太费时间。光是安装JDK、配置环境变量这些前置工作就能劝退不少初学者。后来发现了InsCode(快马)平台,整个过程变得异常简单,5分钟就能跑通核心流程。 项目…...
seo网络优化如何提高网站的转化率
SEO网络优化如何提高网站的转化率 在当前的互联网时代,网站的流量和转化率是衡量企业在网络上竞争力的重要指标。而搜索引擎优化(SEO)网络优化作为提高网站流量和转化率的有效手段,其重要性不言而喻。SEO网络优化究竟能如何有效提…...
如何高效处理asar文件?WinAsar让Electron资源管理变得简单
如何高效处理asar文件?WinAsar让Electron资源管理变得简单 【免费下载链接】WinAsar Portable and lightweight GUI utility to pack and extract asar( Electron archive ) files, Only 551 KB! 项目地址: https://gitcode.com/gh_mirrors/wi/WinAsar 还在为…...
外贸站点SEO优化中如何处理站点的内容优化
外贸站点SEO优化中如何处理站点的内容优化 在当今全球化的商业环境中,外贸站点的SEO优化显得尤为重要。一个成功的外贸站点不仅要吸引国际客户,还需要在搜索引擎结果中获得高排名,以最大限度地提高曝光率和转化率。内容优化是外贸站点SEO优化…...
基于Yalmip+Matlab的主从博弈优化:电动汽车充电定价策略实战解析
1. 主从博弈与电动汽车充电定价的实战背景 当你在手机APP上查看不同时段的充电价格时,背后其实隐藏着一场精妙的数学博弈。充电站运营商希望最大化收益,而车主则追求最低充电成本,这种"定价-响应"的互动关系,正是典型的…...
2026本科论文降AI率工具哪个好用?实测推荐
这篇是我实测了主流降AI率工具之后写的,不是广告,数据都是我自己测的。 2026年的降AI工具市场,鱼龙混杂。有些号称免费的用完没效果,有些价格贵但退款流程复杂。我帮你们踩过这些坑了,这里把真正有用的列出来。 先说…...
