Spring Cloud 疑难杂症(7): Rabbitmq 只允许一个 callback
在一个微服务下,只能允许一个 confirm callback 和一个 return callback
所以需要抽象出公共配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Slf4j @Component public class RabbitSendConfirmCallBack implements RabbitTemplate.ConfirmCallback { @Override public void confirm(CorrelationData correlationData, boolean ack, String cause) { if (ack) { log.error("├ [Rabbitmq 发送] 确认成功cause" + cause); } else { log.error("├ [Rabbitmq 发送] 确认失败:" + correlationData.getId() + "#cause" + cause); } } }
|
1 2 3 4 5 6 7 8 9 10 11
| @Slf4j @Component public class RabbitSendReturnCallback implements RabbitTemplate.ReturnCallback { @Override public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) { log.error("├ [Rabbitmq 发送] 确认后回调return--message:"+new String(message.getBody())+",replyCode:"+replyCode+"," + "replyText:" +replyText+",exchange:"+exchange+",routingKey:"+routingKey); } }
|
在生产者中设置
1 2
| this.rabbitTemplate.setReturnCallback(rabbitSendReturnCallback); this.rabbitTemplate.setConfirmCallback(rabbitSendConfirmCallBack);
|
上一篇 « Spring Cloud 疑难杂症(6): OpenJDK 字体库缺失
下一篇 » 友情链接