3

我应该注意 MSMQ 有什么限制吗?

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

数字应该在一分钟内大约 200,000 - 300,000。

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

4

4 回答 4

5

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

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

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

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

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

于 2012-08-16T13:06:18.507 回答
2

对于小型的非事务性消息,这在理论上是可能的,但它处于我个人听说过的高端。不过,请远离事务队列——我严重怀疑您是否能够在任何实际平台上获得这种吞吐量。

于 2012-08-16T13:03:32.283 回答
1

由于可怕的资源不足问题,我在 MSMQ 中遇到了这种卷的问题。

这似乎是一种罕见的情况,但它发生在我身上几次。

于 2012-08-16T13:06:03.967 回答
0

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

您可以拥有从队列中读取消息并以事务方式处理它们的服务。在这里(MSDN 链接)您可以找到一些示例。创建一个小样本,做一些负载测试,看看它是否有效。

于 2012-08-16T13:06:54.420 回答