我与easynetq
当我在dev
环境中发布消息时,该消息也会在我的staging
和acceptance
环境中被提取。
解决这个问题的方法是使用类似
之类的高级总线为每个环境创建一个交换string exchangeName = String.Format("MyProject_{0}", environmentName);
return advancedBus.ExchangeDeclare(exchangeName, ExchangeType.Direct);
但是,我现在无法弄清楚如何解析IBus
接口时将使用的默认交换。
可以这样做,还是我必须沿着只使用IAdvancedBus
的路线走?
答案 0 :(得分:1)
您真的不应该在不同的环境之间共享相同的RabbitMQ虚拟主机。这就像期望一个SQL数据库处理dev,test和live。
为环境特定的App(Web).config文件(或使用某种标记化)维护的每个环境具有不同的配置。每个配置都应该保持一个唯一的EasyNetQ连接字符串。您可以让它们都使用相同的代理,但让它们连接到不同的虚拟主机。