代码之家  ›  专栏  ›  技术社区  ›  greg

ActiveMQ优先级奇怪行为

  •  0
  • greg  · 技术社区  · 5 年前

    我将消息推送到具有不同优先级的队列中。我可以看到使用ActiveMQ web界面正确设置了JMSpriority标头。

    这是我的测试。我首先在队列中推送大量低优先级的消息。我们有一个缓慢的消费者“模式”,因此所有消息都开始累积并正确排队。KahaDB用于存储。 然后我推送高优先级消息。

    问题是,只要我不点击队列在activeMQ web界面中显示消息,消息就不会被排序,高优先级的消息也不会被分发给消费者。我一点击队列,就会立即看到页面刷新,导致正确排序,在顶部看到高优先级消息。然后,这些消息将尽快发送,并如预期的那样从排队消息列表中“消失”。

    因此,很明显,由于优先级排序涉及这个手动步骤,所以在某个地方出现了问题。我使用了这里描述的配置 https://activemq.apache.org/how-can-i-support-priority-queues .

    我已经考虑过使用JMX强制队列排序的解决方法,但我真的想避免这种情况!

    我使用的是AMQ 5.15版本,spring和camel。

    0 回复  |  直到 5 年前