2012-08-16 62 views
3

是否有任何限制,我应该知道MSMQ的?MSMQ在实时系统

我想用它来读取和写入消息,但消息很多。

的数字应该是20万左右 - 在一分钟内300,000。

有什么想法?它应该工作吗?

+3

什么是你想要使用MSMQ的原因是什么? – 2012-08-16 13:07:34

+0

对我(非常好,有SSD)的开发人员机器进行快速性能测试,在非事务性的队列中,给出:30,050条消息/秒或1,803,055条消息/分钟。绰绰有余你需要什么。 – 2014-04-10 15:15:32

回答

5

MSMQ是一个队列,其主要优点是将发送者和接收者的消息分离(例如,接收系统可以脱机)。

如果延迟时间保证是一个要求,那我就看看其他地方(如.NET远程/ WCF NetTCP结合等)

这就是说,我们已经使用MSMQ低级别的硬件标准,突发速率>> 500条消息每秒,但在一个集成(EAI)环境中,与MSMQ的好处是:

  • 异步 - 其中发送和接收的消息可以以不同的速率
  • 潜在交易(例如DTC下,消息发生过程可以放在队列中并在U下的数据库中更新OW)
  • 已审核(日期)
  • 死信队列 - 即,如果接收方在定义的时间段之后从不接收消息。

低延迟从来不是一个要求 - 可靠性和完整性是主要驱动因素。

2

对于小的非事务性消息,这在理论上可能是可能的,但它在我个人听说的高端。远离事务性队列离开,但 - 我严重怀疑你将能够得到那种吞吐量在任何现实的平台。

+0

+1 - 香烟盒计算表明,在10k /消息=每小时180GB时,持续的速率为300k信息/分钟。不在MSMQ的联赛中。 – StuartLC 2012-08-16 13:24:12

+0

我忘了提及我即将删除所有收到的消息,这些消息是由MSMQ服务器上运行的服务 – 2012-08-16 13:26:05

1

由于可怕的Insufficient Resources problem,我在MSMQ的这种卷中遇到了问题。

看起来这很少见,但它发生在我身上几次。

0

看看这篇文章:link它说,MSMQ不应该被用作存储产品,但用作传输机制。

您可能有服务从队列中读取消息并以事务方式处理它们。 Here (MSDN link)你可以找到一些例子。创建一个小样本,做一些负载测试,看看它是否工作。