0

我目前在同时运行多个环境时遇到了麻烦easynetq

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

解决这个问题的方法是使用高级总线为每个环境创建一个交换,例如

string exchangeName = String.Format("MyProject_{0}", environmentName);
return advancedBus.ExchangeDeclare(exchangeName, ExchangeType.Direct);

IBus但是,我现在不知道如何使它成为我解析接口时将使用的默认交换。

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

4

1 回答 1

1

你真的不应该在不同的环境之间共享同一个 RabbitMQ 虚拟主机。这就像期望一个 SQL 数据库来处理开发、测试和实时运行一样。

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

于 2014-08-01T12:06:57.917 回答