rabbitmq - RabbitAdmin 中的默认队列绑定
问题描述
今天,我们的应用程序有一个 vhost、一个 ConnectionFactory 和一个 RabbitAdmin,然后是多个队列和交换声明。现在我们需要一个新的虚拟主机,因此需要一个 ConnectionFactory 和 RabbitAdmin
创建新的虚拟主机后,我面临的问题是,所有现有队列和交换都在两个虚拟主机中创建。为了解决这个问题,我使用declare-by="RabbitAdminName"
了可以在队列和交换级别使用的属性。由于我的应用程序有多个队列和交换,因此我不希望通过在每个队列定义中添加 declare-by 来干扰所有现有配置。
有没有办法(全局配置更改默认行为)告诉兔子只有预期的新队列将进入新的 vhost/ConnectoinFactory/RabbitAdmin 而不是已经存在的队列。任何帮助都是非常可观的(我正在寻找减速的xml方式)
默认情况下,所有队列、交换和绑定都由应用程序上下文中的所有 RabbitAdmin 实例(具有 auto-startup="true")声明。
参考:spring.io
解决方案
目前没有针对此的全局设置;您必须配置每个队列等并设置declare-by
属性以将声明限制为显式管理员。
因此,您需要对旧队列执行此操作,以便仅在旧 vhost 上声明这些队列。
我们可以向管理员添加一个标志,以排除任何未明确请求此管理员声明的 bean。
推荐阅读
- azure - Azure Devops 发布管道
- visual-studio-code - 在Visual Studio代码中隐藏集成终端的快捷方式是什么
- mysql - 使用两个不同引擎(TokuDB 和 InnoDB)连接表时索引无法正常工作
- amazon-web-services - 使用 AWS Java SDK v2 从 AWS EKS 获取身份验证令牌
- amazon-web-services - 避免RDS实例跨地域调用
- python - 如何用for循环转置矩阵?
- c# - 动态生成 HTML div 并将数据插入数据库
- java - 使用 Java 接口时的 Kotlin 接口实现行为
- bonita - Bonitasoft - 可打印的表格
- apache-kafka - Kafka 2.3 集群中的代理的 Kafka 'replications.number'