当前位置: 首页 > news >正文

RabbitMQ养成记 (7. 消息可靠性投递)

消息可靠性

什么是消息的可靠性呢??
简单来说就是 你的消息发放给 exchange 这个过程中 有可能丢失或者失败
这时候需要一个回调机制来监控 发送结果 必要时还要返回信息。

rabbitmq 给我们提供了两种:
首先是生产者到exchange发送过程的监控 ——confirm
然后是exchange到queue发送过程的监控 ——return


2种现在我们依次来代码实践一下:

  1. confirm
    首先 在配置里面加一个 publisher-confirms: true
spring:rabbitmq:host: 192.168.88.151username: guestpassword: guestvirtual-host: /port: 5672publisher-confirms: true

然后java代码是这样:

   @Testpublic void testSend(){rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {//注意这是一个回调方法 等发送完成之后 再调用确认/**** @param correlationData 配置信息* @param b adc 代表了exchange是否收到了信息* @param s*/@Overridepublic void confirm(CorrelationData correlationData, boolean b, String s) {System.out.println("伟伟 confirm方法被执行了");if (b){System.out.println("交换机接受成功"+s);}else{System.out.println("交换机接受失败"+s);}}});rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME,"boot.maru","boot mq hello aaa");}

看一下这个代码:
rabbitTemplate.setConfirmCallback()我们调用了这个方法,在里面用匿名内部类:(新手不懂匿名内部类的看这篇:)
来调用confirm方法 里面的第二个参数boolean 就是标志是否成功

  1. return
/**** Return 模式* 监控exchange到queue过程 失败则调用returnCallback*/@Testpublic void testReturn(){rabbitTemplate.setMandatory(true);rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback(){@Overridepublic void returnedMessage(Message message, int i, String s, String s1, String s2) {System.out.println("return 执行了");}});rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME,"boot.maru","boot mq hello aaa");}

相关文章:

RabbitMQ养成记 (7. 消息可靠性投递)

消息可靠性 什么是消息的可靠性呢?? 简单来说就是 你的消息发放给 exchange 这个过程中 有可能丢失或者失败 这时候需要一个回调机制来监控 发送结果 必要时还要返回信息。 rabbitmq 给我们提供了两种: 首先是生产者到exchange发送过程的监…...

SpringBoot配置连接两个或多个数据库

在Spring Boot应用中连接多个数据库或数据源可以使用多种方式,下面介绍两种常用的方法: 1、使用Spring Boot官方支持的多数据源配置 Spring Boot提供了官方支持的多数据源配置,可以简单地配置和管理多个数据源。 需要在application.proper…...

Python面试题汇总:高效备战技巧

Python面试题汇总:高效备战技巧 一、基础知识准备1 语言特点及优缺点2 数据类型3 运算符4 控制流程语句5 函数 二、面向对象编程1 面向对象编程基础2 类的创建及继承3 魔术方法4 多态5 设计模式 三、常用数据结构与算法1 字符串、列表、字典、集合字符串列表字典集合…...

如何区分比特率、波特率和频谱带宽?

01、什么是比特率和波特率? 宽带网络里面提及的千兆即1000Mbit/s,一般描述的是我们家网络端口每秒最大可接收0、1比特(bit)的数量,即每秒可接收1000x106个比特。显而易见,比特率越高,每秒传送的…...

sklearn中的特征工程(过滤法、嵌入法和包装法)

目录 ​编辑特征工程的第一步:理解业务 Filter过滤法 ​编辑方差过滤 ​编辑- 相关性过滤 - 卡方过滤 - F检验 - 互信息法 ​编辑嵌入法(Embedded) 包装法(Wrapper) 特征工程的第一步:理解业务 如…...

Linux C/C++并发编程实战(0)谈谈并发与并行

作为并发编程的第一讲,比较轻松,我们先来谈谈什么是并发和并行。 并发(Concurrency)是指一个处理器同时处理多个任务。 并行(Parallelism)是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发…...

2023年5月天津/南京/成都/深圳CDGA/CDGP数据治理认证报名

6月18日DAMA-CDGA/CDGP数据治理认证考试开放报名中! 考试开放地区:北京、上海、广州、深圳、长沙、呼和浩特、杭州、南京、济南、成都、西安。其他地区凑人数中… DAMA-CDGA/CDGP数据治理认证班进行中,报名从速! DAMA认证为数据管…...

【MySQL】MySQL批量插入测试数据的几种方式

文章目录 前言一、表二、使用函数生成设置允许创建函数产生随机字符串产生随机数字 三、创建存储过程插入角色表插入用户表 四、执行存储过程小结五、使用 Navicat自带的数据生成 前言 在开发过程中我们不管是用来测试性能还是在生产环境中页面展示好看一点, 又或者学习验证某…...

PowerShell install 一键部署virtualbox

VirtualBox 前言 VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public Licens…...

CTF权威指南 笔记 -第四章Linux安全机制-4.1-Stack Canaries

目录 Stack Canaries 简介 我们进行简单的例子 64 32 checksec Stack Canaries 是对抗栈溢出攻击的技术 SSP安全机制 Canary 的值 栈上的一个随机数 在程序启动时 随机生成并且保存在比返回地址更低值 栈溢出是从低地址向高地址进行溢出 如果攻击者要攻击 就一定要覆…...

KDZD400Q便携式三氯乙烯浓度检测仪

一、产品概述 检测仪用于快速检测多种气体浓度、温湿度测量并超标报警的场合。采用2.31寸高清彩屏实时显示,选用进口品牌的气体传感器,主要检测原理有:电化学、红外、催化燃烧、热导、PID 光离子等。 可以检测管道中或受限空间、大气环境中的…...

C++11 部分新特性

1. 关键字和语法 1.1 nullptr 空指针,能够和整数0进行区别,因为#define NULL 0 1.2 类中非静态成员变量定义时初始化 & 初始化列表 1.3 auto 可推导出右值类型,从而得知左边变量类型。 简单使用示例: auto func() {retur…...

selenium通过performance log获取状态码,Conten-Type,以及重定向路径

selenium的官方不提供获取状态码,Conten-Type,以及重定向路径的方法,并且官方说这些功能将来也不会有。java - How to get HTTP Response Code using Selenium WebDriver - Stack Overflow 非官方的方法大概有下面几种 1.通过requests重新请…...

GL绘制自定义线条3_自定义线帽

安卓Path搭配Paint可以设置线帽,我想能不能把我自己的线条绘制Demo也加上类似的功能。 线头规则描述: 1、设一个线宽一半的线段,坐标为(0, 0)到(-lineWidth / 2, 0)。 2、设步骤1的线段有一垂直于它的向量(0,1),然后传…...

【AGC】新版鸿蒙崩溃SDK集成使用方法

【背景】 我们知道AGC的Crash SDK都是需要强制集成华为分析SDK的,在使用时的崩溃数据上报都要依靠分析服务来完成,这就容易受到限制,有时出现无数据的情况就要依次排查崩溃SDK与分析SDK,比较麻烦。而就在不久前,鸿蒙崩…...

vue-7:组件库(移动端vant)(PC端element)

移动端vant 插件安装(按需导入) 重启生效 # 通过 npm 安装 npm i unplugin-vue-components -D# 通过 yarn 安装 yarn add unplugin-vue-components -D 导入基于 vite 的项目: 如果是基于 vite 的项目,在 vite.config.js 文件中…...

JavaScript中splice()、slice()、split()三种方法的区别,及使用详细

简介:splice、slice、split是JavaScript中,比较常用的三个数组方法,表面看起来有点相像,用处却大不相同,今天就来分别介绍下它们的用法。 1、splice()方法 splice方法可以用来删除数组中的元素,或者向数组…...

Linux更新操作系统Openssh版本9.3p1(源码编译安装)

Linux更新操作系统Openssh版本9.3p1(源码编译安装) 部署前准备 安装依赖 yum install -y gcc gcc-c glibc make autoconf openssl openssl-devel pcre-devel pam-develyum install -y pam* zlib* openssh-9.3p1.tar.gzopenssl-3.1.0.tar.gz备份文件 cp /etc/pam.d/sshd /etc/…...

MS COCO数据集介绍

MS COCO数据集介绍 MS COCO全称是Microsoft Common Objects in Context,是由微软开发维护的大型图像数据集,包括不同检测任务: Object Detection([主要处理人、车、大象等]) DensePose(姿态密度检测&…...

Java之线程池

目录 一.上节复习 1.阻塞队列 二.线程池 1.什么是线程池 2.为什么要使用线程池 3.JDK中的线程池 三.工厂模式 1.工厂模式的目的 四.使用线程池 1.submit()方法 2.模拟两个阶段任务的执行 五.自定义一个线程池 六.JDK提供线程池的详解 1.如何自定义一个线程池? 2.创…...

造相-Z-Image GitHub Actions集成:CI/CD自动化图像生成方案

造相-Z-Image GitHub Actions集成:CI/CD自动化图像生成方案 1. 引言 技术文档维护过程中,插图制作往往是最耗时耗力的环节之一。传统方式需要设计师手动创作,或者开发者手动调用图像生成API,效率低下且难以保持一致性。想象一下…...

寻音捉影·侠客行惊艳演示:多暗号并行扫描,3个关键词0.8秒全部锁定

寻音捉影侠客行惊艳演示:多暗号并行扫描,3个关键词0.8秒全部锁定 1. 引言:在声音的海洋里,如何快速找到那根针? 你有没有过这样的经历?手头有一段长达一小时的会议录音,老板在里面提到了一个关…...

我实测过的9个AI Agent Skills(用过就再也离不开)

智能体技能正成为打造实用AI智能体的全新黄金标准,但没人告诉你这个生态系统究竟有多混乱。找到安全又好用的技能就像碰运气;大多数仓库看起来惊艳无比……可一上手就原形毕露。我深有体会,因为我翻遍了几十个仓库。我一头扎进这个领域&#…...

Win10+VS2019配置vcpkg:从安装到项目集成的完整指南

1. 初识vcpkg:C开发者的效率神器 第一次接触vcpkg是在2018年接手一个跨平台C项目时,当时被各种第三方库的编译依赖折磨得够呛。vcpkg就像黑暗中的一束光,彻底改变了我的开发体验。简单来说,vcpkg是微软开源的C包管理工具&#xf…...

为什么Nuxt本地开发会收到Chrome DevTools的请求?深入解析与两种解决方案

为什么Nuxt本地开发会收到Chrome DevTools的请求?深入解析与两种解决方案 在Nuxt.js本地开发过程中,不少开发者都遇到过这样一个现象:控制台频繁出现/.well-known/appspecific/com.chrome.devtools.json路径的404警告。这看似无害的提示背后&…...

日本加大投入约270亿元助力Rapidus实现2nm芯片量产

近日,日本政府批准拨付6315亿日元(约合人民币270.15亿元)的追加补贴,这使得2022至2026年度的研发支援总额攀升至2.354万亿日元(约合人民币1007.06亿元),旨在助力Rapidus加速挺进竞争白热化的AI芯…...

2026届最火的十大AI论文网站推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现在各类用来检测AI的工具变得越发精准,怎样去降低文本被AI生成的比率已然成为一…...

3个策略如何让Path of Building中文版成为你的流放之路“第二大脑“?

3个策略如何让Path of Building中文版成为你的流放之路"第二大脑"? 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm 你是否曾在《流放之路》那浩瀚的天赋树前感到迷茫&#xf…...

【词汇专栏】MoE(混合专家):为什么 DeepSeek 又快又省钱?

MoE(混合专家):为什么 DeepSeek 又快又省钱? DeepSeek-V3 有 6710 亿个参数,但运行速度比 GPT-4o 还快?Gemini 1.5 Pro 能处理 100 万词元(Token)还不崩溃?这背后的秘密&…...

深度学习的完整学习路径是什么?看这一篇就够了

深度学习的完整学习路径是什么?看这一篇就够了 标签:#深度学习、#人工智能、#自然语言处理、#神经网络、#机器学习、#计算机视觉、#python### 第一部分:为什么很多人学深度学习却找不到工作?### 第二部分:企业真正需要…...