原文网址:SpringBoot整合RabbitMQ–RabbitTemplate的配置–方法/实例_IT利刃出鞘的博客-CSDN博客
简介
本文用实例介绍SpringBoot整合RabbitMQ时RabbitTemplate的配置。
confirm回调函数
作用
设置confirm回调函数。
实例
回调函数
/ * 消息发送成功的回调 * 需要开启送确认:publisher-confirms: true / @Slf4j public class RabbitConfirmCallBack implements RabbitTemplate.ConfirmCallback { @Override public void confirm(CorrelationData correlationData, boolean ack, String cause) { log.info("消息唯一标识: {}", correlationData); log.info("确认状态: {}", ack); log.info("造成原因: {}", cause); } }
注册回调函数
@Configuration @AllArgsConstructor public class RabbitInitializingBean implements InitializingBean { private RabbitTemplate rabbitTemplate; @Override public void afterPropertiesSet() throws Exception { rabbitTemplate.setConfirmCallback(new RabbitConfirmCallBack()); } }
return回调函数
作用
设置return回调函数。
实例
回调函数
/ * 发生异常时的消息返回提醒 * 需要开启发送失败退回: publisher-returns: true / @Slf4j public class RabbitReturnCallback implements RabbitTemplate.ReturnCallback { @Override public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) { log.info("消息主体: {}", message); log.info("回复编码: {}", replyCode); log.info("回复内容: {}", replyText); log.info("交换器: {}", exchange); log.info("路由键: {}", routingKey); } }
注册回调函数
@Configuration @AllArgsConstructor public class RabbitInitializingBean implements InitializingBean { private RabbitTemplate rabbitTemplate; @Override public void afterPropertiesSet() throws Exception { rabbitTemplate.setReturnCallback(new RabbitReturnCallback()); } }
强制处理消息
作用
确保没有对应的queue时每一个消息都会被处理,不会被丢弃。
实例
rabbitTemplate.setMandatory(true);
详解
当mandatory设置为true时,若exchange根据自身类型和消息routingKey无法找到一个合适的queue存储消息,那么broker会调用basic.return方法将消息返还给生产者。当mandatory设置为false时,出现上述情况broker会直接将消息丢弃。
单独的发送连接
作用
使用单独的发送连接,避免生产者由于各种原因阻塞而导致消费者同样阻塞
实例
rabbitTemplate.setUsePublisherConnection(true);
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210360.html原文链接:https://javaforall.net
