微服务 教程
1085个小节阅读:196.8k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
退回模式(return)可以监听消息是否从交换机成功传递到队列,使用方法如下:
生产者配置文件开启退回模式
xxxxxxxxxx
spring
rabbitmq
host192.168.0.162
port5672
username itbaizhan
password itbaizhan
virtual-host /
# 开启确认模式
publisher-confirm-type correlated
# 开启回退模式
publisher-returnstrue
生产者定义退回模式的回调方法
xxxxxxxxxx
public class ProducerTest {
private RabbitTemplate rabbitTemplate;
public void testReturn(){
// 定义退回模式的回调方法。交换机发送到队列失败后才会执行returnedMessage方法
rabbitTemplate.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {
/**
* @param returned 失败后将失败信息封装到参数中
*/
public void returnedMessage(ReturnedMessage returned) {
System.out.println("消息对象:"+returned.getMessage());
System.out.println("错误码:"+returned.getReplyCode());
System.out.println("错误信息:"+returned.getReplyText());
System.out.println("交换机:"+returned.getExchange());
System.out.println("路由键:"+returned.getRoutingKey());
// 处理消息...
}
});
rabbitTemplate.convertAndSend("my_topic_exchange","my_routing1","send message...");
}
}
实时效果反馈
1. 在RabbitMQ中,退回模式可以监听
A 生产者是否成功传递到交换机
B 交换机是否成功传递到队列
C 消费者是否成功消费消息
D 以上都可以监听
2. 在RabbitMQ中,RabbitTemplate调用方法定义退回模式的回调方法
A setReturnsCallback
B setConfirmCallback
C setReturns
D setConfirm
答案
1=>B 2=A