0

在输出产品中,我们偶尔需要计算队列中包含特定属性值的消息数量。直接的方法是使用带有选择器的队列浏览器。但:

  1. 有没有办法在不浏览所有相关消息的情况下获取此统计信息?我们不需要数据,只需要计数。
  2. 如果我们确实采用队列浏览器方法,它是否也会浏览某些消费者已消费但尚未确认的消息?
4

1 回答 1

0

无法保证基于选择器对队列中的消息进行计数。这有很多原因,其中一个是 JMS 规范不要求 QueueBrowser 甚至返回 Queue 上的每条消息。ActiveMQ 返回的消息数量不会超过它可以放入内存的数量,因此如果您有一个深度队列,您将无法获得准确的计数。任何管理工具都不会为您执行此操作,因为作为数据库并不是 ActiveMQ 的真正工作。

这里有一些关于消息传递反模式的文章,您应该阅读这些文章,以便更好地为消息传递的冒险做好准备。

第 1条和第 2 条

于 2014-07-17T22:21:18.433 回答