对于我工作的公司,我们希望使用RabbitMQ作为我们的主要消息总线。 我们的想法是每个应用程序都使用自己的虚拟主机进行内部通信,通过铲子或联邦插件,我们可以在多个虚拟主机之间共享某些types的事件(甚至可能是多台机器(非集群)) 。 我们select每个虚拟主机的应用程序来分隔公共事件的内部通信,并保持每个应用程序的安全性可调。 根据RabbitMQ网站上发布的信息,当我不得不select铲子或者必须select联邦插件时,我不明白。 RabbitMQ何时使用以下说明 : 通常情况下,如果您需要比联邦提供的更多控制权,则可以使用铲子将互联网中的经纪人链接起来。 当我select联邦时,我错过的铁锹的细粒控制是什么? 在这一刻,我想我更喜欢联邦插件,因为我可以通过联邦插件提供的REST API自动进行虚拟主机通信。 在铲子的情况下,我将需要改变铲子configuration,并重新启动RabbitMQ实例,每次我们想共享一个虚拟主机之间的事件。 我的想法是否正确? 我们目前正在Windows上运行RMQ,客户端从.NET连接。 在不久的将来,Java / Perl / PHP客户端将join。 总结我的问题: 当我失踪的时候,我所错过的铁锹的细粒控制是什么? select联邦? 使用铁锹时,更改虚拟主机间通信的唯一方法是更改configuration文件并重新启动实例吗? 设置(每个应用程序的虚拟主机)是否有意义,或者我完全错过了这一点?