NServicebus消息延迟问题

时间:2010-09-21 08:10:51

标签: nservicebus

昨天我做了一个生产模拟。结果哪里不好。两台服务器之间的连接正常。不时会有很大的延迟,大约5-10分钟。我发了一条消息,两个,三个......二十,而另一方则不接收它们。然后繁荣,所有消息都在那里,并将回复发送给发件人。另一种情况是当我发送10条消息时,另一方会立即收到消息并回复。但是发件人没有收到回复。在BOOM 5-10分钟后,回复就在这里。

什么是布莱恩特。请帮帮我。

====================
编辑: 两台服务器都是Windows XP sp3。两台计算机都与openVPN连接。 NSB是最新版本。

用户界面< = duplex => 应用服务器< = 发布/订阅 => Denormalizer(只读数据库)

昨天我只测试了双工。在1PC环境中一切顺利。当双工准备就绪时,我将测试第三部分。

1 个答案:

答案 0 :(得分:0)

您使用活动目录吗?我记得读过AD会导致MSMQ出现问题。某些查找表中的某些内容非常庞大并且减慢了某些事情...无论如何都不能准确记住,只是一个想法。

否则,我建议首先在一台计算机上安装两个端点,然后从那里开始工作。慢慢添加变量,直到它再次中断。

编辑:尝试将此行添加到您的配置中:

.RunCustomAction(() => NServiceBus.Configure.Instance.Configurer.ConfigureProperty<MsmqTransport>(
                    mt => mt.SecondsToWaitForMessage, 2))

如果你正在使用主机,我不知道你如何配置它。我的配置如下:

    _Bus = NServiceBus.Configure.With()
                  .DefaultBuilder()
                  .Log4Net(new MyLogAppender())
                  .XmlSerializer()
                  .MsmqTransport()
                      .IsTransactional(true)
                      .PurgeOnStartup(true)
                  .UnicastBus()
                      .ImpersonateSender(false)
                      .DoNotAutoSubscribe()
                      .LoadMessageHandlers()
                  .RunCustomAction(() =>
                    NServiceBus.Configure.Instance.Configurer.ConfigureProperty<MsmqTransport>(
                    mt => mt.SecondsToWaitForMessage, 2))
                  .CreateBus()
                  .Start();

我遇到一个问题,我的MSMQ队列会定期超时,从而产生延迟。但是默认超时仅在几秒钟内(15秒iirc?)。从来没有弄清楚它为什么会发生,我认为这在MSMQ库中是有趣的。我真的怀疑同样的问题会导致10分钟+延迟,但值得一试。