代码之家  ›  专栏  ›  技术社区  ›  Rohit Mahindrakar

msmq应在发送和接收服务器上进行存储匹配

  •  0
  • Rohit Mahindrakar  · 技术社区  · 7 年前

    我试图在事务中向MSMQ发送大量消息。出现存储问题,我们在接收机器上增加了msmq存储,在发送机器上按原样存储(默认1GB)。我们仍在收到问题,并希望确认存储是否应与发送和接收机器匹配。 如果您遇到类似问题,请告诉我,理想的解决方案应该是什么。

    1 回复  |  直到 7 年前
        1
  •  0
  •   John Breakwell    7 年前

    对于事务性消息,消息存在如下:

    1. 发件人的传出队列中可见消息
    2. 接收方目标队列中可见的消息;消息在发送方的传出队列中不可见,挂起ACK消息
    3. 在接收方的目标队列中可见消息

    因此,您希望有一段时间消息会占用两台机器上的空间。不过,这不会持续很长时间,所以您不需要匹配发送方和接收方的存储大小。 应将存储容量设置为“最坏情况”。因此,假设网络中断。在您宣布紧急情况之前,您希望发件人的传出队列中包含的未发送邮件和未确认但已发送的邮件的最大数量是多少。 类似地,假设接收器上的应用程序已崩溃,目标队列中有多少未处理的消息构成紧急情况?

    存在存储限制以保护您的服务器。

    1. 它们可以防止硬盘被填满(重要)
    2. 它们可以防止内核内存耗尽(非常重要-请参阅#4 https://blogs.msdn.microsoft.com/johnbreakwell/2006/09/18/insufficient-resources-run-away-run-away/ )

    所以存储限制应该足够高,以适应最坏的情况,但要足够低,以避免耗尽内核内存。