【问题标题】:Microsoft Message Queue - priority flag or a separate queue?Microsoft 消息队列 - 优先级标志或单独的队列?
【发布时间】:2010-10-15 20:11:03
【问题描述】:

我用 C# 实现了一个系统,它使用 Microsoft 消息队列 (System.Messaging) 在相关进程之间进行通信。本质上,许多 Sender 服务生成消息以放入队列,而许多 Receiver 进程监视队列并在它们到达时获取这些消息。

我刚刚被告知有些消息需要优先于其他消息。

消息可能会一波一波地出现,并且可能会在一次点击中将大量消息放入队列中(比如一千左右),因此在最终消息之前可能会有延迟得到处理。

我最初的想法是有第二个 Priority 消息队列,它也被不同线程中的每个 Receiver 进程监视。此队列中的消息会少得多,因此延迟会更短。

然后我偶然发现了Message.Priority 属性。

所以:

我应该使用这个优先级标志而不是实现另一个队列吗?它会成功且有效地将这些消息跳到其他消息之前吗?如果有,可能会出现什么情况和副作用?

或者我应该坚持我原来的计划并为优先消息实施另一个队列?

【问题讨论】:

    标签: c# .net multithreading msmq


    【解决方案1】:

    我应该使用这个优先级标志而不是实现另一个队列吗? 是的

    它会成功并有效地将这些消息跳到其他消息之前吗? 是的

    如果有,可能会出现什么情况和副作用? 没有,MSMQ 就是为这种方式设计的

    【讨论】:

    • 很好,谢谢。我担心外围可能存在一些问题。
    【解决方案2】:

    显然不需要消息优先级 - http://www.udidahan.com/2008/01/30/podcast-message-priority-you-arent-gonna-need-it\ 。 Udi 讨论了几种不同的可能架构以及使用多个端点而不是使用 msmq 消息优先级来设置基础架构的方法。他还提到开启消息优先级会增加服务器的内存使用量。

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2017-07-03
      • 2011-12-20
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      相关资源
      最近更新 更多