CorrelationData为NULL

 /**
     * 消息发送到 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())

你可能感兴趣的:(CorrelationData为NULL)