Activemq 具有优先级的排队系统还是客户端拉动?

Activemq 具有优先级的排队系统还是客户端拉动?,activemq,priority-queue,polling,stomp,Activemq,Priority Queue,Polling,Stomp,我正在从事一个项目,在这个项目中,多个工作人员从一个作业队列接收STOMP消息进行处理,我们希望支持优先级。目前,我们正在使用ActiveMQ,但我们无法让内置的优先级支持正常工作,不得不求助于使用多个队列,每个优先级一个队列。这是可行的,但因为每个队列的缓冲区中始终至少有一个未确认的消息客户端等待确认。如果数千条消息以一种优先级出现,那么可以想象,低优先级缓冲区中的任何消息一次都会在那里停留数小时甚至数天 如果我们可以轮询服务器以获取消息,而不是被动地等待,那就太好了,但这似乎不受支持,除非我

我正在从事一个项目,在这个项目中,多个工作人员从一个作业队列接收STOMP消息进行处理,我们希望支持优先级。目前,我们正在使用ActiveMQ,但我们无法让内置的优先级支持正常工作,不得不求助于使用多个队列,每个优先级一个队列。这是可行的,但因为每个队列的缓冲区中始终至少有一个未确认的消息客户端等待确认。如果数千条消息以一种优先级出现,那么可以想象,低优先级缓冲区中的任何消息一次都会在那里停留数小时甚至数天

如果我们可以轮询服务器以获取消息,而不是被动地等待,那就太好了,但这似乎不受支持,除非我们使用OpenWire,这似乎有些过分了。对我们可能使用的解决方案有什么建议吗


编辑:我突然想起了我说我们不能优先考虑的事情是什么意思。当我们测试ActiveMQ的优先级时,一旦出现足够大的积压工作,它似乎就不再遵守这些优先级了。

您的用例听起来是开始使用openwire客户端的理想时机,因为对于代理无法遵守优先级的情况,它既支持消息拉取,也支持客户端优先级排序。我不确定你为什么认为这是过度杀戮,但似乎过度杀戮正是你所需要的

这太过分了,因为它需要完全重写,甚至需要语言转换。目前,这项工作是用Perl完成的,OpenWire支持似乎几乎完全缺乏;因此,我们必须编写自己的库。粗略的搜索似乎表明Ruby和Python可能有更好的支持。如果这是我必须走的路,那就这样吧,但我想我应该先征求专家的意见。