Nservicebus N服务总线消息延迟问题

Nservicebus N服务总线消息延迟问题,nservicebus,Nservicebus,昨天我做了一个生产模拟。结果哪里不好。两台服务器之间的连接正常。有时会有巨大的延迟,大约5-10分钟。我发了一条信息,二,三。。二十个,另一方不接收。然后砰的一声,所有的信息都在那里,回复被发送给发送者。另一种情况是,当我发送10条信息时,对方会立即收到并回复。但是发件人没有收到回复。5-10分钟后,回复就在这里 发生了什么事。请帮帮我 ============================ 编辑: 两台服务器都是windows XP sp3。这两台计算机都与openVPN连接。 NSB是最新

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

发生了什么事。请帮帮我

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

用户界面应用服务器反规范化程序(只读数据库)


昨天我只测试了双面打印。在1便士的环境中,一切都很顺利。双工就绪后,我将测试第三部分。

是否使用active directory?我记得读到广告会导致MSMQ出现问题。沿着某些查找表的路线的某些东西是巨大的,并且会减慢速度。。。反正记不清了,不过只是一个想法

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

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

.RunCustomAction(() => NServiceBus.Configure.Instance.Configurer.ConfigureProperty<MsmqTransport>(
                    mt => mt.SecondsToWaitForMessage, 2))
.RunCustomAction(()=>NServiceBus.Configure.Instance.Configurer.ConfigureProperty(
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();
\u Bus=NServiceBus.Configure.With()
.DefaultBuilder()
.Log4Net(新的MyLogAppender())
.XmlSerializer()
.MsmqTransport()
.IsTransaction(真)
.PurgeOnStartup(正确)
.UnicastBus()
.ImpersonateSender(错误)
.DoNotAutoSubscribe()
.LoadMessageHandlers()
.RunCustomAction(()=>
NServiceBus.Configure.Instance.Configurer.ConfigureProperty(
mt=>mt.SecondsToWaitForMessage,2)
.CreateBus()
.Start();

我的MSMQ队列会定期超时,从而造成延迟。但是,默认超时仅以秒为单位(15秒iirc?)。我一直无法弄清楚为什么会发生这种情况,我认为MSMQ库中有一些有趣的东西。我真的怀疑同样的问题会导致10分钟以上的延迟,但值得一试。

您能提供更多关于环境的信息吗?服务器的类型/操作系统以及如何配置网络?您使用的是全双工模式吗?此外,NSB的哪个版本?可能是VPN问题。机器之间是否存在延迟?此外,您可能需要查看DTCPing以确保MSDTC正常工作:。我还会在MSDTC上进行日志记录。事件日志中有任何内容吗?连接正常。没有其他错误。只是无缘无故地不时拖延。我确信问题出在NSB,因为我注意到了一种模式,例如,当我删除所有队列并为双方重新开始时。我认为这是某种初始化延迟,之后总线将正常工作,但我错了,延迟再次出现。如果完全删除队列而不是清除队列,那么NSB启动时会有延迟,因为它必须在发送任何事务之前在两侧创建队列。任何其他缓慢都可能是由于计算机之间的日志记录级别或延迟造成的。我会尝试清理而不是把它们吹走。我很想听到任何解释。今天,我注意到我们的生产环境(windows server 2008,2节点群集)也出现了同样的延迟。测试系统没有延迟(完全相同的硬件,只比生产系统的内存少一点)。在两个集群上,消息每110秒发送一次。它在测试系统上正常工作,在生产系统上,它看起来像是收集消息,然后一起发送。在那之后,在10或15分钟内,再次没有任何事情发生。然后几条消息再次出现。没有广告。但是我会尝试你的建议并在这里报告结果。你还应该在遇到问题的一段时间内尝试运行连续ping(即ping ip.address-t),以检查是否有任何网络拥塞/延迟发生。是的,mrnye,这是我实际做的第一件事。没有这样的问题。