0

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

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

编辑:当我说我们无法让优先事项发挥作用时,我突然想到要提到我的意思。当我们测试 ActiveMQ 的优先级时,一旦出现足够大的积压,它似乎就不再尊重它们了。

4

1 回答 1

0

您的用例听起来像是开始使用 openwire 客户端的理想时机,因为它支持消息拉取和客户端优先级排序,以应对代理无法兑现优先级的情况。我不太确定你为什么认为它是矫枉过正,但似乎矫枉过正可能正是你所需要的。

于 2013-10-19T11:15:00.213 回答