MSMQ在实时系统中

时间:2012-08-16 12:59:21

标签: c# .net xml msmq

我应该注意MSMQ是否有任何限制?

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

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

有什么想法?应该有用吗?

4 个答案:

答案 0 :(得分:5)

MSMQ是一个队列,其主要好处是将发送者和消息接收者解耦(例如,接收系统可以离线)。

如果要求保证延迟,那么我会寻找其他地方(例如.NET远程处理/ WCF NetTCP绑定等)

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

  • 异步 - 发送和接收消息的进程可以以不同的速率发生
  • 可能是事务性的(例如,在DTC下,消息可以放在队列中并在数据库中更新,在UOW下)
  • 审计(日记)
  • 死信队列 - 即如果接收方在规定的时间段后从未接收到该消息。

低延迟绝不是必需的 - 可靠性和完整性是主要驱动因素。

答案 1 :(得分:2)

对于小的非事务性消息,理论上这可能是可能的,但它是我个人听到的最高端。但是,请远离交易队列 - 我非常怀疑您是否能够在任何现实平台上获得这种吞吐量。

答案 2 :(得分:1)

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

这似乎很少见,但它发生在我身上几次。

答案 3 :(得分:0)

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

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