昨天我做了一个生产模拟。结果哪里不好。两台服务器之间的连接正常。不时会有很大的延迟,大约5-10分钟。我发了一条消息,两个,三个......二十,而另一方则不接收它们。然后繁荣,所有消息都在那里,并将回复发送给发件人。另一种情况是当我发送10条消息时,另一方会立即收到消息并回复。但是发件人没有收到回复。在BOOM 5-10分钟后,回复就在这里。
什么是布莱恩特。请帮帮我。
====================
编辑:
两台服务器都是Windows XP sp3。两台计算机都与openVPN连接。
NSB是最新版本。
用户界面< = duplex => 应用服务器< = 发布/订阅 => Denormalizer(只读数据库)
昨天我只测试了双工。在1PC环境中一切顺利。当双工准备就绪时,我将测试第三部分。
答案 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分钟+延迟,但值得一试。