/**
* 消息发送到 Broker 后触发回调,确认消息是否到达 Broker 服务器,也就是只确认是否正确到达 Exchange 中
*
* @param correlationData
* @param ack
* @param cause
*/
@Override
public void confirm(CorrelationData correlationData, boolean ack, String cause) {
System.out.println(correlationData);
if(ack){
logger.info("[RabbitMQ 消息发送结果:] 成功!");
}else{
logger.error("[RabbitMQ 消息发送结果:] 失败!\n 消息唯一标识"+correlationData+"\n 失败原因"+cause);
}
}
获取CorrelationData 为NULL
解决
@RequestMapping(value = "/A",method = RequestMethod.POST)
public void sendMsg() {
for(int i=0;i<=10;i++){
rabbitTemplate.convertAndSend(RabbitConfig.EXCHANGE_A, RabbitConfig.ROUTINGKEY_A, "消息队列"+RabbitConfig.ROUTINGKEY_A+i,new CorrelationData(UUID.randomUUID().toString()));
}
}
你要在send 尾部加上它,不然怎么怎么知道ID值呢?
new CorrelationData(UUID.randomUUID().toString())