提问者:小点点

Spring的AMQP:移除旧的绑定和队列


我使用SpringAMQP和SpringBoot@Configuration@Bean注释来创建所有必需的队列、交换和绑定。

@Bean
public Queue queue() {
    return new Queue("my_old_queue", true, false, false);
}

@Bean
public Exchange exchange() {
    return new DirectExchange("MY_OLD_EXCHANGE");
}

@Bean
public Binding binding() {
    return BindingBuilder.bind(queue())
                         .to(exchange())
                         .with("old_binding")
                         .noargs();
}

但我面临着升级拓扑的问题:

    < li >我想添加新的队列/绑定/交换 < li >并删除旧的队列/绑定/交换(即使它是持久实体)。

是否存在用于移除或解除绑定的注释(如< code>@Unbind)?我见过建议使用< code > RabbitManagementTemplate 的例子,但这是一种完全不同的配置方式——我想把所有东西都放在单个@Configuration类中,只使用注释或配置beans(这可能吗?).对于创建/删除和更新rabbit拓扑是否存在一些共同的模式(也许我漏掉了什么)?


共1个答案

匿名用户

您无法删除带有注释或配置的实体,请使用 RabbitAdmin.delete*() 方法删除它们,就像该答案中一样 - 管理模板用于列出绑定,RabbitAdminamqpAdmin) 执行删除。

相关问题