【问题标题】:how to set queue/message durability to false in Spring AMQP using annotations?如何使用注释在 Spring AMQP 中将队列/消息持久性设置为 false?
【发布时间】:2013-08-28 13:03:00
【问题描述】:

我编写了示例 spring amqp 生产者,它在 RabbitMQ 服务器上运行,该服务器发送消息并使用 Spring AMQP 使用 MessageListener 消费这些消息。在这里,我想将队列和消息持久性设置为 false。您能否请任何人帮助我了解如何使用注释将“持久”标志设置为 false。

这里是示例代码

@Configuration
public class ProducerConfiguration {

    protected final String queueName = "hello.queue";

    @Bean
    public RabbitTemplate rabbitTemplate() {
        RabbitTemplate template = new RabbitTemplate(connectionFactory());
        template.setRoutingKey(this.queueName);
        template.setQueue(this.queueName);
        return template;
    }

    @Bean
    public ConnectionFactory connectionFactory() {
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
        connectionFactory.setUsername("guest");
        connectionFactory.setPassword("guest");
        return connectionFactory;
    }
}


public class Producer {

    public static void main(String[] args) throws Exception {
        new Producer().send();
    }

    public void send() {

        ApplicationContext context = new AnnotationConfigApplicationContext(
                ProducerConfiguration.class);
        RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class);
        for (int i = 1; i <= 10; i++) {
            rabbitTemplate.convertAndSend(i);
        }
    }

}

提前致谢。

【问题讨论】:

    标签: queue rabbitmq spring-amqp


    【解决方案1】:
    @Configuration
    public class Config {
    
        @Bean
        public ConnectionFactory connectionFactory() {
            return new CachingConnectionFactory();
        }
    
        @Bean
        public Queue foo() {
            return new Queue("foo", false);
        }
    
        @Bean
        public RabbitAdmin rabbitAdmin() {
            return new RabbitAdmin(connectionFactory());
        }
    }
    

    rabbit 管理员将在第一次打开连接时声明队列。请注意,您不能将队列从持久更改为不持久;先删除吧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 2018-09-24
      • 2023-04-05
      • 2011-10-12
      • 2016-12-13
      • 1970-01-01
      相关资源
      最近更新 更多