在春季启动中动态支持多个RabbitMq虚拟主机

时间:2019-02-05 11:10:10

标签: java spring-boot rabbitmq spring-amqp spring-rabbitmq

我正在尝试实现对多租户Spring Boot应用程序的支持,其中每个租户应用程序都通过RabbitMq将数据发送到Spring Boot应用程序。每个租户都连接到其自己的RabbitMq虚拟主机。可以在下图中显示 enter image description here

这个问题已经被问过很多次了,例如

  1. How to use multiple vhosts in a Spring RabbitMQ project?
  2. configuring multiple Vhosts in AMQP in rabbitmq configuration spring boot
  3. RabbitMQ RPC across multiple rabbitMQ instances

该解决方案似乎是为每个虚拟主机创建多个connectionFactory bean。这些是完全硬编码的解决方案。我想要更易于管理的东西。

就我而言,每个虚拟主机的交换名称和绑定密钥相同。到目前为止,Spring Boot应用程序能够连接到一个虚拟主机。

我希望我的Spring Boot应用程序能够处理所有这些虚拟主机以及需要在spring概要文件中完成的凭据,而不是为每个连接工厂创建单独的bean。

是否有一种方法可以在spring配置文件中实现对多个虚拟主机的支持,或者如果可能的话,还有其他更好的方法来解决我和许多其他开发人员所面临的问题吗?

谢谢

1 个答案:

答案 0 :(得分:1)

有一个open issue to add this functionality。作者已经有一个项目spring-multirabbit,它可以满足您的需求。