rabbitmq的confirm模式获取correlationData为null解决办法
回调函数confirm中的correlationData=null
// 实现confirm回调,发送到和没发送到exchange,都触发
@Override
public void confirm(CorrelationData correlationData, boolean ack, String cause) {// 参数说明:// correlationData: 相关数据,可以在发送消息时,进行设置该参数// ack: 结果// cause: 原因if (ack) {log.info("【ConfirmCallback】消息已经送达Exchange,ack已发");} else {ReturnedMessage message = correlationData.getReturned();if (message != null) {String msgData = new String(message.getMessage().getBody());log.error("消息发送到 exchange {} 失败,原因: {},id: {}, routingKey: {},body: {}", message.getExchange(), cause, correlationData.getId(), message.getRoutingKey(), msgData);} else {log.error("消息发送 exchange 失败,原因: {},id: {}", correlationData.getId(),cause);}}
}
解决办法
在convertAndSend方法中传入correlationData数据
@SpringBootTest
class RabbitmqDemoApplicationTests {@Testvoid contextLoads() {// 模拟消息BattleSubmitMqVo msg = new BattleSubmitMqVo().setUserId(1L).setRoomId("123").setTimes(300L);// 工具类发送消息到mqMqUtil.sendMsgToMq(RabbitConfig.BATTLE_PAPER_EXCHANGE,RabbitConfig.BATTLE_PAPER_ROUTING_KEY, msg);}}
工具类
package com.example.rabbitmqdemo.util;import cn.hutool.json.JSONUtil;
import com.sun.istack.internal.NotNull;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessagePostProcessor;
import org.springframework.amqp.core.ReturnedMessage;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;/*** desc:** @author qts* @date 2023/11/3 0003*/
@Component
public class MqUtil {private static RabbitTemplate rabbitTemplate;@Autowiredprivate RabbitTemplate rabbitTemplate2;@PostConstructpublic void init(){rabbitTemplate = rabbitTemplate2;}/*** 发送消息并* 添加 CorrelationData数据* @param exchange* @param routingKey* @param msg*/public static void sendMsgToMq(String exchange, String routingKey, Object msg){CorrelationData correlationData = new CorrelationData();correlationData.setReturned(new ReturnedMessage(new Message(JSONUtil.toJsonStr(msg).getBytes()),1,"1",exchange,routingKey));rabbitTemplate.convertAndSend(exchange,routingKey,msg,correlationData);}/*** 发送消息* 添加 CorrelationData数据, 消息后处理回调* @param exchange* @param routingKey* @param msg* @param messagePostProcessor 消息后处理回调*/public static void sendMsgToMq(String exchange, String routingKey, Object msg,MessagePostProcessor messagePostProcessor){CorrelationData correlationData = new CorrelationData();correlationData.setReturned(new ReturnedMessage(new Message(JSONUtil.toJsonStr(msg).getBytes()),1,"1",exchange,routingKey));rabbitTemplate.convertAndSend(exchange,routingKey,msg,messagePostProcessor,correlationData);}
}
效果
得到了值

springboot集成rabbitmq
相关文章:
rabbitmq的confirm模式获取correlationData为null解决办法
回调函数confirm中的correlationDatanull // 实现confirm回调,发送到和没发送到exchange,都触发 Override public void confirm(CorrelationData correlationData, boolean ack, String cause) {// 参数说明:// correlationData: 相关数据,可以在发送消息时,进行设置该参数// …...
【Linux】centos7安装配置及Linux常用命令
目录 一.Centos安装与配置 1.1.创建 1.2.安装配置CentOS 7实操 二.Linux常用命令 2.1.常用命令 2.2.三种模式 三.换源处理(切换国内源) 3.1.拍照备份 好啦今天就到这里哦!!希望能帮到你哦!!! 一.Centos安装与配…...
LCD调试
此处以6739 1g版本为例(kernel 4.19),基于参考配置的主要修改点如下: 1. 两个配置文件defconfig: kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_debug_defconfig: kernel-4.19\arch\arm\configs\k39tv1_bsp_1g_k419_defconfig: CONFIG_LCM_HEIGHT="1280" CO…...
【计算机网络】金管局计算机岗位——计算机网络(⭐⭐⭐⭐)
计算机网络知识点 计算机网络基础知识计算机网络的定义与组成、分类网络的发展、常识(⭐⭐⭐⭐)计算机网络的定义计算机网络的功能计算机网络的组成计算机网络的分类计算机网络的性能指标主要包括(⭐⭐⭐⭐) 网络体系结构OSI模型定…...
第十四章 ObjectScript 系统标志和限定符 (qspec) - 限定符与标识
文章目录 第十四章 ObjectScript 系统标志和限定符 (qspec) - 导出限定符 导出限定符ShowClassAndObject限定符 第十四章 ObjectScript 系统标志和限定符 (qspec) - 导出限定符 导出限定符 FlagMeaningDefault/checksysutd检查系统类是否是最新的。0/checkuptodate映射时检查类…...
测试这碗饭,现在是越来越难吃了
我是一名测试工程师,今年10岁了,游走在产品研发线上,与产品小妹、开发小哥、运维大叔一起维护着研发世界的和平,我的主要技能就是究其一生使出浑身解数与bug斗智斗勇,保障产品的质量,可是这10多年来我走过的…...
这个超实用的门禁技巧,让办公楼安全更简单高效!
门禁监控是现代社会中不可或缺的一部分,用于确保安全和管理进出某个区域的人员。随着科技的不断发展,门禁监控已经远离了传统的机械锁和钥匙,变得更加智能化和高效。 客户案例 企业办公大楼 无锡某大型企业在其办公大楼内部部署了泛地缘科技…...
C++虚表与虚表指针详解
类的虚表 每个包含了虚函数的类都包含一个虚表。 当一个类(B)继承另一个类(A)时,类B会继承类A的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说&…...
12 pinctrl 和 gpio 子系统
一、pinctrl 子系统 1. 什么是 pinctrl 子系统? 首先回顾一下如何初始化 LED 所使用的 GPIO: ①、修改设备树,添加相应的节点,节点里面重点是设置 reg 属性, reg 属性包括了 GPIO相关寄存器。 ②、获取 reg 属性中 …...
【复盘】记录一次JVM 异常问题 java.lang.OutOfMemoryError: unable to create new native thread
背景是最新运营提了一个需求,需要根据用户信息拉去三分机构的信贷数据,需要达到一天百万级别,但是经过实际测试,也只能达到40W量级,具体就是通过起多个Spring Boot项目,每个项目1S拉一个用户,基…...
Java基础之类型(内涵面试题)
目录 一、自动类型转换: 二、强制类型转换: 1.强制类型转换可能造成数据丢失(溢出)。 2.浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。 三、自增、自减(、--)有关面试题…...
idea好用插件整理
1、Alibaba Java Coding Guidelines 阿里巴巴编码格式规范 2、Big Data Tools 大数据开发工具,是一个集成 Spark 且支持编辑和运行 Zeppelin Notebooks 的 IntelliJ IDEA 新插件 3、chinese language pack 中文语言包 4、CodeGeex ai生成提示代码 5、ide eval…...
【WinForm详细教程五】WinForm中的MenuStrip 、ContextMenuStrip 、ToolStrip、StatusStrip控件
文章目录 1.MenuStrip2.ContextMenuStrip3.ToolStrip4.StatusStrip 1.MenuStrip MenuStrip作为一个容器可以包含多个菜单项。MenuStrip 的重要属性包括: Name:菜单的名字Dock:菜单的停靠位置Items:菜单项的集合 ToolStripMenuI…...
研究人员发现34个Windows驱动程序易受完全设备接管攻击
最近,研究人员发现了34个易受攻击的Windows驱动程序,这些漏洞可能被非特权威胁行为者利用来完全接管设备,并在底层系统上执行任意代码。这一发现引发了广泛关注,并引起了Windows用户的担忧。 导语 随着科技的不断进步,…...
最新 vie-vite框架下 jtopo安装使用
官方地址 官方源码 安装下载 1.官方好像都没有给git地址,尝试npm安装报错 2.找到1.0.5之前的版本npm i jtopo2,安装成功后使用报错,应该是版本冲突了 1.本地引入, 点击官方源码下载,需要jtopo_npm文件 2.引入到本…...
基础课20——智能客服系统的使用维护
1.智能客服系统的维护 智能客服系统在上线后,仍然需要定期的维护和更新。这是因为智能客服系统是一个复杂的软件系统,涉及到多个组件和功能,需要不断优化和改进以满足用户需求和保持市场竞争力。 保持系统的稳定性和性能:随着用…...
Aop自定义注解生成日志
Aop自定义注解生成日志 1.编写自定义注解 //表示此注解可以标注在方法上 Target(ElementType.METHOD) //运行时生效 Retention(RetentionPolicy.RUNTIME) public interface OpetionLog {//定义一个变量,可以接收参数String value() default "";}2.Cont…...
虚幻引擎:RPC:远端调用
1.如何区当前是服务器还是在客服端 2.如何修改一个actor的所有权 修改所有权必须 在服务器上进行修改,不允许在客户端进行修改...
涉及多种位运算操作混合类题目——通过加转三进制(扩大状态,不变枚举量):CF1033F
https://www.luogu.com.cn/problem/CF1033F 我们发现直接用二进制来做很难做,但我们可以观察其给的表 我们发现如果表示成和的形式是容易进行一一对应的 对于询问的时候,我们直接枚举每位有的和是多少,虽然状态是三次的,但是对于…...
BIOS开发笔记 - DDR基础
简介 内存是计算机中重要的组成部分,主要为CPU计算时提供一个数据的临时存储的场所。CPU在处理数据前,会将数据从外存复制到内存中,然后再处理内存中的数据,如果需要将结果保存,则一次性写回外存,这样便大大提高CPU的处理效率。 …...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...
