MSMQ 队列大小是否有限制?

9

我了解消息的大小限制(4MB),但是队列大小有限制吗?最佳实践的限制是什么?

2个回答

11

“最佳实践的限制是吗?”

一个好的测试是看系统重新启动并再次运行需要多长时间。例如,您可能希望将100GB的消息作为最大限制,但100GB的消息重新加载可能需要30分钟,这可能远远超出了您的服务级别协议(SLA)。

所以:

  1. 决定系统停机时间的服务级别协议(SLA)
  2. 计算需要存储多少消息才能在重新启动时破坏SLA
  3. 计算系统实际可以存储多少消息
  4. 选择两者中较小的一个。

4

当然有限制。

您可以在这里找到详细信息。

但是,如果您的消费者以与生产者相同的速度消耗消息,则无需担心内存限制等问题。

就我个人的经验而言,队列容量取决于机器,并且与ActiveMQRabbitMQ相比并不是很大。


真实的情况是,队列容量因机器而异,因为最大大小的限制取决于可用内核内存(用于索引消息)。我很想知道ActiveMQ或RabbitMQ使用了什么替代方法。 - John Breakwell
好的,我使用过MSQM、ActiveMQ和RabbitMQ,相比于ActiveMQ和RabbitMQ,MSMQ的扩展性不太好。此外,ActiveMQ和RabbitMQ比MSMQ具有更多的功能。 - DarthVader
@JohnBreakwell,你有没有写那篇博客文章呢? - Marcus
不,我转换了技术方向,失去了专注。 - John Breakwell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接