spring 启动时动态支持多 RabbitMq 虚拟主机

Dynamic support for multi RabbitMq virtual hosts in spring boot

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

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

  1. configuring multiple Vhosts in AMQP in rabbitmq configuration spring boot

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

在我的例子中,每个虚拟主机的交换名称和绑定密钥都是相同的。到目前为止,spring 启动应用程序能够连接到一个虚拟主机。

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

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

谢谢

有一个open issue to add this functionality. The author already has a project spring-multirabbit可能会满足您的需求。