2

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

我的意图是让 Publisher1 的多个实例运行并接收发布者发送的消息。我还破解了发布者只发送 eventMessage 类型的消息。

但是,如果我启动发布者和订阅者 1 的三个实例,则一次只有一个实例会收到消息。

这是为什么?是配置设置还是其他?

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

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

4

2 回答 2

1

NServiceBus 假设每个进程有一个输入队列。确保您的每个订阅者都配置有唯一的输入队列。如果不是所有三个都将轮询同一个队列,从而产生您所描述的行为。

为此,您可能必须将粘贴 sub1 复制到 3 个不同的文件夹,修改 app.config 并启动它们。

希望这可以帮助!

于 2010-03-17T16:58:36.987 回答
0

你应该使用这个-

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

确保您使用MsmqTransport而不是您提到的MsmqTransportConfig 。

于 2011-04-20T08:56:47.227 回答