【发布时间】:2011-03-28 19:09:10
【问题描述】:
我看过的大多数消息传递系统似乎都基本支持优先级消息队列(如果有的话)。例如,AMQP 仅specifies 至少有 2 个优先级。 RabbitMQ,一个 AMQP 实现,doesn't support 任何优先级。几天后,ActiveMQ 将在 5.4 版中为 10 个消息优先级提供getting support。 10 个优先级由JMS spec 指定。
priority queue 在单词的非消息传递意义上根据具有不受限制的优先级范围的任意字段对其内容进行排序。为什么像这样的实现不作为消息传递系统的一部分存在?正如我在标题中所问的,优先级本质上是非消息传递概念吗?
我意识到一个答案可能是优先级的概念引入了消息在队列中无限等待处理更高优先级消息的可能性。还有其他原因吗?
【问题讨论】:
-
几个 cmets:这可能更适合 CSTheory.SE,我认为您在帖子中确定了优先级问题。您必须有一种方法来防止死锁或停滞……我倾向于认为消息队列具有转发消息的目的,而不是负责任何主要业务逻辑。
标签: message-queue messaging activemq rabbitmq amqp