是否可以更改easynetq中的默认交换

时间:2014-08-01 11:08:24

标签: c# rabbitmq easynetq

我与easynetq

同时运行多个环境时遇到了麻烦

当我在dev环境中发布消息时,该消息也会在我的stagingacceptance环境中被提取。

解决这个问题的方法是使用类似

之类的高级总线为每个环境创建一个交换
string exchangeName = String.Format("MyProject_{0}", environmentName);
return advancedBus.ExchangeDeclare(exchangeName, ExchangeType.Direct);

但是,我现在无法弄清楚如何解析IBus接口时将使用的默认交换。

可以这样做,还是我必须沿着只使用IAdvancedBus的路线走?

1 个答案:

答案 0 :(得分:1)

您真的不应该在不同的环境之间共享相同的RabbitMQ虚拟主机。这就像期望一个SQL数据库处理dev,test和live。

为环境特定的App(Web).config文件(或使用某种标记化)维护的每个环境具有不同的配置。每个配置都应该保持一个唯一的EasyNetQ连接字符串。您可以让它们都使用相同的代理,但让它们连接到不同的虚拟主机。