我们正在努力从 NServiceBus 4.0.4 和 MSMQ 中获得良好的性能。我们体验到,当消息以每秒大约 40-50 条消息的缓慢速度进入时,一切正常,我们的处理程序能够保持队列为空。
将消息速率提高到平均每秒 400 条消息,处理程序无法再跟上。在这一点上,我们的处理程序只是一个没有任何逻辑的空处理程序。它们似乎可能平均每秒覆盖 400 条消息中的大约 300 条消息,并且消息队列缓慢建立。
在这里,我真的很难理解会发生什么。如果我随后进一步增加到每秒 1500 -2000 条消息,则处理程序会加快游戏速度并每秒处理接近 1500 条消息,队列仍然会建立,但不会产生额外的消息量。
我们试图摆弄NumberOfWorkerThreads
(On/Off and 0-100), MaxRetries
(On/Off and 0-100), MaximumConcurrencyLevel
(On/Off and 0-100), MaximumMessageThroughputPerSecond
(On/Off and 0-10000) and IsTransitional
(On/Off ) 似乎没有什么影响这种行为。
我们能够发送数千条消息,但无法处理它们,即使今天的处理是从队列中挑选它们并将它们丢弃。
有谁知道这可能来自什么,或者对我们如何提高公共汽车的性能有什么好的建议?