我们如何管理多个应用程序的 rabbitmq 配置

How do we manage rabbitmq configuration for multiple applications

目前,我们在管理 rabbitmq 的应用程序配置时使用以下方法:

我的这个问题是围绕应用程序生命周期之外的交换、队列和绑定的生成。 目前,我们以预定义的方式在应用程序本身之外设置这些队列,即:

然而,最近我们一直在关注这个领域。我们中的一些人提议为每个应用程序(在启动时)使用流畅的界面来生成所有 exchanges/queues/bindings 等。这当然应该有效,因为所有这些命令本质上都是幂等的。 其他人不想在我们的应用程序中配置所有这些队列、交换和绑定,而是想提前预定义配置。

什么是 correct/recommended 方法?我们应该预先配置我们的 rabbitmq queues/exchanges/bindings 还是每个应用程序都应该负责(在启动时)确保创建这些 queues/exchanges/bindings?

如果您的应用程序确保在启动时(或 运行 时)所需的资源可用,则维护会更容易。如果您将资源保存在定义文件中,它们将与您的应用程序不同步,甚至可能不在源代码管理中。

我的 0.02 美元


注意: RabbitMQ 团队监控 rabbitmq-users mailing list 并且有时只在 Whosebug 上回答问题。