【问题标题】:Does NServiceBus support multiple instances of the same subscriber on the same physical machine?NServiceBus 是否支持同一台物理机上同一订阅者的多个实例?
【发布时间】:2011-07-27 20:10:00
【问题描述】:

我们有一个使用发布者和订阅者组件运行的 NService 原型。

如果我们在同一台物理机器上实例化同一个订阅者的多个副本,那么其中只有一个会收到任何给定的发布消息 - 但如果我们在多台机器上分别运行一个订阅者,它会按预期工作。

看来我们不能在同一个盒子上有两个进程,它们都实现了 IHandleMessage 并且都订阅了同一个消息队列,因为发布者无法知道涉及到两个单独的订阅者......

我们是对的吗?这种行为是设计使然,还是我们配置错误?

【问题讨论】:

    标签: msmq nservicebus publish-subscribe


    【解决方案1】:

    您可以在同一台物理机器上拥有多个订阅者 - 他们只需要独立的输入队列。

    这意味着您不能在同一个可执行文件和配置文件集合中运行多个流程实例 - 您必须将它们复制到不同的文件夹中并更改另一个实例上的配置。

    这基本上就是 NServiceBus 代码中包含的 PubSub 示例所显示的内容。

    您现在看到的是每个订阅者(具有相同的输入队列,因此具有相同的“身份”)彼此窃取消息 - 基本上是通过使用更多进程来实现多线程。

    【讨论】:

    • 太棒了 - 这就是我们所怀疑的......非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 2019-11-30
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多