【问题标题】:Is it possible to change the default exchange in easynetq是否可以更改easynetq中的默认交换
【发布时间】:2014-08-01 20:06:57
【问题描述】:

我目前在使用easynetq 同时运行多个环境时遇到问题

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

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

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

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

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

【问题讨论】:

    标签: c# rabbitmq easynetq


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的提醒,我不了解虚拟主机,但这是一个比在所有队列/交换中添加前缀更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2010-09-19
    • 1970-01-01
    • 2018-08-19
    相关资源
    最近更新 更多