NServiceBus中的多个订户

时间:2010-03-17 13:58:33

标签: nservicebus publish-subscribe

我开始使用NServiceBus并对Pubsub示例有疑问。

我的目的是让Publisher1的多个实例运行并接收发布者发送的消息。我还攻击了Publisher只发送eventMessage类型的消息。

但是,如果我启动发布者和Subscriber1的三个实例,则其中只有一个实时获取消息。

为什么?是配置设置还是别的什么?

这是我尝试过的,它会返回异常“启动端点时出现异常,已记录错误。原因:在配置组件之前无法配置属性。请先调用'配置'。”:

using NServiceBus;

namespace Subscriber1
{
    public class EndpointConfig : IConfigureThisEndpoint, AsA_Server
    {
    }

    public class OverrideInputQueue : IWantCustomInitialization
    {
        public void Init()
        {
            Configure
                .Instance
                .Configurer
                .ConfigureProperty<NServiceBus.Config.MsmqTransportConfig>(t => t.InputQueue, "testQueue");
        }
    }
}

/ J

2 个答案:

答案 0 :(得分:1)

NServiceBus假定每个进程有一个输入队列。确保为每个订户配置了唯一的输入队列。如果不是全部三个将轮询相同的队列,产生您正在描述的行为。

要做到这一点,您可能需要将粘贴sub1复制到3个不同的文件夹,修改app.config并启动它们。

希望这有帮助!

答案 1 :(得分:0)

你应该使用它 -

Configure.Instance.Configurer.ConfigureProperty<NServiceBus.Unicast.Transport.Msmq.MsmqTransport>(msmq => msmq.InputQueue, "SomeQueueHere");

请确保您使用 MsmqTransport 而不是 MsmqTransportConfig