springboot - rabbitmq 生产者消息确认
# 开启发送确认
spring.rabbitmq.publisher-confirms=true
# 开启发送失败退回
spring.rabbitmq.publisher-returns=true
@Component
public class PubConfirmAndReturn implements RabbitTemplate.ReturnCallback,RabbitTemplate.ConfirmCallback{
@Autowired
RabbitTemplate rabbitTemplate;
@PostConstruct
public void init(){
rabbitTemplate.setReturnCallback(this);
rabbitTemplate.setConfirmCallback(this);
}
@Override
public void returnedMessage(Message message, int i, String s, String s1, String s2) {
System.out.println("消息主体 message : "+message);
System.out.println("消息主体 message : "+ i);
System.out.println("描述:"+ s);
System.out.println("消息使用的交换器 exchange : "+ s1);
System.out.println("消息使用的路由键 routing : "+ s2);
}
@Override
public void confirm(CorrelationData correlationData, boolean b, String s) {
System.out.println("消息唯一标识:"+correlationData);
System.out.println("确认结果:"+ b);
System.out.println("失败原因:"+ s);
}
}