0
如果我有3个队列的优先1,2 & 3分别。我希望我的消费者首先从队列中消耗优先级1,然后再使用2 &等。如果在具有较高优先级的队列为空的情况下,消费者可以从具有较低优先级的队列中消耗。 是否可以通过JMS或ActiveMQ或其他方式实现?我有多个队列,我想为这些队列设置优先级。在JMS中可能吗?
如果我有3个队列的优先1,2 & 3分别。我希望我的消费者首先从队列中消耗优先级1,然后再使用2 &等。如果在具有较高优先级的队列为空的情况下,消费者可以从具有较低优先级的队列中消耗。 是否可以通过JMS或ActiveMQ或其他方式实现?我有多个队列,我想为这些队列设置优先级。在JMS中可能吗?
您必须使用此方法自己控制该逻辑。对于ActiveMQ或任何其他JMS提供者,您只需使用另一个队列。
但是,您可以使用单个队列来获取消息优先级。如何做到这一点有几种不同的方式如上所述in the documentation.
如果您希望您的消费者尽可能简单,那么请代理商确定优先级。否则,您将需要混淆多个消费者或使用选择器消耗的低效单消费者逻辑。
在这两种情况下,您的生产者只需要足够聪明就可以将JMSPriority标头设置为逻辑所说的任何优先级。
唯一的缺点是,您有一个经纪人端配置专门为该队列设置,而不是一切都是自动的。
你能解释一下“经纪人如何计算优先权”吗?你能解释一下吗? – Swapnil 2014-09-04 15:36:55
如果使用prioritizedMessages =“true”配置队列polciy,那么代理将按优先级顺序而不是FIFO顺序发送消息。 ActiveMQ使用的优先级在某种程度上取决于您使用的持久存储。所有内容都在我给你的链接中解释。 – 2014-09-04 16:04:20
我们在JMS上使用SOAP。如果假设我们给出了10个请求,并且这些请求消息仍然保持在队列中,则这些请求一次只能处理一个请求。我们怎样才能并行处理多个请求? – Swapnil 2014-09-05 06:24:18