我使用AMQP协议在应用程序之间发送消息。我使用RabbitMQ作为服务器。
我有一台运行在计算机上的本地RabbitMQ服务器" A"。因此,不同的应用程序可以在计算机上发送/接收消息" A"本地网络。
所有消息都是使用单个"扇出"交换名为" MessageExchange" :当应用程序在计算机上发送消息" A"时,计算机上的每个应用程序" A"收到此消息。
为计算机安装了相同的软件" B"和" C"。
现在,计算机" A"," B"和" C"通过使用配置为在所有RabbitMQ本地实例之间创建联合的公共远程RabbitMQ服务器联网在一起。每个RabbitMQ本地实例都配置为" shovel"它的消息到远程服务器。
一切都按预期工作:当应用程序在交换时发送消息" MessageExchange"在计算机" A",在计算机和#34; A"," B"和" C"收到消息。
我的问题如下:如果发送邮件的应用程序在计算机上,并且#34; A&#34 ;,则计算机上的每个应用程序" A"接收消息两次:来自本地RabbitMQ服务器的一条消息和来自远程联合的一个副本。
我该如何避免这种情况?
这是一些额外的信息: