我们的架构基于一个由大约70个队列组成的ActiveMQ 5.10.0主干网 . 不同的应用程序将消息发送到队列,不同的应用程序消耗来自队列的消息 . 具体来说,只有5个队列拥有多个消费者,而其余队列每个队列只有一个消费者 .

除了拥有多个消费者的队列之外,一切正常 . 对于这些队列,消息正确排队,但它们不会出列,直到我们访问ActiveMQ Web门户并单击队列名称,从而登记完整的消息列表 . 当我们这样做时,突然出现的未决消息会出列 .

一些额外的说明:

  • 队列只包含TEXT消息

  • 我们有10个消费者注册到该队列 . 每个使用者定义一个适当的选择器,以便只使用一些已发布的消息 .

  • 每条消息都设置了超时,因为有些消息不希望无限期地将消息保留在队列中 .

  • 每个消费者通过BiTronix池定义连接池 . 根据另一个线程的建议,对于每个消费者,我们将预取设置为0

有人可以给我们任何建议吗?为什么访问ActiveMQ Web消息列表会解锁未排队的消息?