如何为不同的环境设置 RabbitMQ?

How to setup RabbitMQ for different environments?

我们一直在开发一个使用安装在本地开发服务器上的 RabbitMQ 的应用程序。现在我们想将此应用程序移动到集成和 QA 环境,那么问题是我们是否需要在不同的环境中设置 RabbitMQ,或者是否有任何方法可以为 RabbitMQ 提供一个具有相同交换和队列名称的中央位置。

您当然可以拥有一个可以由不同应用程序和不同团队共享的中央 RabbitMQ instance/cluster。如果您想走这条路,我建议使用 Rabbit's access control mechanisms 将属于每个团队的数据与其他团队的数据隔离开来。 虚拟主机 允许用户共享 Rabbit server/cluster 资源而无需踩到彼此的队列。

如果出于某种原因,您决定在共享环境中坚持使用单个虚拟主机,我建议不要与其他团队(甚至其他开发人员!)共享相同的交换和队列名称,尤其是因为不同方数据之间可能存在的冲突。我说 'potential' 因为不知道你的应用程序和队列的架构,可能不会有这样的冲突,所以由你决定是否会有问题。

最后,如果出于对设置工作的担忧而希望与其他团队共享队列和交换,我建议自动化队列配置或将其构建到应用程序的启动例程中以避免麻烦。

希望对您有所帮助!