rabbitmq - RabbitAdmin 中的默认队列绑定(bind)

标签 rabbitmq spring-amqp

今天,我们的应用程序有一个 vhost、一个 ConnectionFactory 和一个 RabbitAdmin,然后是多个队列和交换声明。现在我们有一个要求,我需要一个新的虚拟主机,因此需要一个 ConnectionFactory 和 RabbitAdmin

创建新虚拟主机后,我面临的问题是,所有现有队列和交换都在两个虚拟主机中创建。为了解决这个问题,我使用了 declare-by="RabbitAdminName" 属性,我可以在队列和交换级别使用它。由于我的应用程序有多个队列和交换,因此我不希望通过在每个队列定义中添加 declare-by 来扰乱所有现有配置。

有没有办法(全局配置更改默认行为)告诉兔子只有预期的新队列才会转到新的 vhost/ConnectoinFactory/RabbitAdmin 而不是已经存在的队列。非常感谢任何帮助(我正在寻找减速的 xml 方式)

By default, all queues, exchanges, and bindings are declared by all RabbitAdmin instances (that have auto-startup="true") in the application context.

引用:spring.io

最佳答案

目前没有全局设置;您必须配置每个队列等并设置 declare-by 属性以将声明限制为显式管理员。

因此,您需要为旧队列执行此操作,以便仅在旧虚拟主机上声明这些队列。

我们可以向管理员添加一个标志,以排除任何未明确请求该管理员声明的 bean。

open a new feature issue .

关于rabbitmq - RabbitAdmin 中的默认队列绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57608305/

相关文章:

java - 如何从监听器委托(delegate)可运行的代码?

rabbitmq - 消息、队列和交换器有哪些限制?

ruby - 订阅一个队列,收到1条消息,然后取消订阅

java - Spring AMQP错误: Listener method could not be invoked with the incoming message

java - spring-rabbitmq 自动重试连接到代理

java - 在 rabbitmq 中配置优先级

python - Rabbitmq - 队列状态显示为 'running',GUI 显示状态为 IDLE

android - 在 android 中使用 rabbitmq 进行聊天

plugins - RabbitMQ MQTT 插件无法启动

spring-boot - 使用 Kotlin 观察参数类型不匹配的 Spring Amqp Remoting