我有多个队列,我想为这些队列设置优先级。在JMS中有可能吗?

时间:2014-09-04 11:38:49

标签: jms activemq priority-queue

如果我有3个优先级为1,2和1的队列。分别为3。我希望我的消费者首先从队列中消耗优先级为1,然后是2&等等。如果优先级较高的队列为空,则使用者可以从优先级较低的队列中使用。 是否可以通过JMS或ActiveMQ或任何其他方式实现?如何?

1 个答案:

答案 0 :(得分:1)

您必须使用此方法自行控制该逻辑。对于ActiveMQ或任何其他JMS提供程序,您只是使用另一个队列。

但是,您可以使用单个队列来实现邮件优先级。如in the documentation.

所述,有几种不同的方法可以解决这个问题

如果您希望您的消费者尽可能简单,那么让经纪人找出优先权。否则,您需要使用选择器来消费多个消费者或低效的单一消费者逻辑。

在这两种情况下,您的生产者只需要足够聪明,将JMSPriority标头设置为逻辑应该具有的任何优先级。

唯一的缺点是,您有一个代理端配置专门设置该队列,而不是一切都是自动的。

相关问题