3
回答
spring boot RabbitMQ 问题
华为云实践训练营,热门技术免费实践!>>>   

大家好,请教个问题,我集成rabbitmq +spring boot

@Configuration
 public class ProducerConfig implements RabbitTemplate.ConfirmCallback{


/**  * 保留回调方式  * */ 
@Bean
 public ConnectionFactory connectionFactory() {
    CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
    connectionFactory.setAddresses(customerConfigure.getRabbitLogHost()+":"+customerConfigure.getRabbitLogPort());
    connectionFactory.setUsername(customerConfigure.getRabbitLogUsername());
    connectionFactory.setPassword(customerConfigure.getRabbitLogPassword());
    connectionFactory.setVirtualHost("/");
    connectionFactory.setPublisherConfirms(true); //必须要设置  
return connectionFactory;
}
@Override 
public void confirm(CorrelationData correlationData, boolean ack, String cause) {
    System.out.println(" callbackId:" + correlationData);
 if (ack) {
        System.out.println("send ok");
    } else {
        System.out.println("send fail:" + cause);
    }
}
}

我想实现的是,当消费了消息的时候,作为生产者的我才会收到确认信息,但是当我实现了confirm方法后,只要发送消息到RabbitMq,就回调了confirm方法,消息并没有被消费。我目前的实现是没有消费者监听我的队列,在rabbitMQ管理页面中还保留着若干消息。

我的用法应该是有问题,不知道各位有没有类似的例子,供我参考一下。谢谢了。

callbackId:null
send ok

另外,我还想问一下,我自己实现的消息消费者,只是监听队列,来一条新的就消费一条,对于已经存在的队列中的消息,如何消费?又如何给provider 发送确认信息呢?



举报
顶部