从Java/Spring中检索RabbitMQ队列中未确认消息的数量

Jav*_*cia 8 java spring amqp rabbitmq spring-amqp

有没有办法返回未确认的消息数?

我正在使用此代码来获取队列中的消息数:

DeclareOk declareOk = amqpAdmin.getRabbitTemplate().execute(
        new ChannelCallback<DeclareOk>() {
            public DeclareOk doInRabbit(Channel channel)
                throws Exception {
                return channel.queueDeclarePassive(name);
            }
        });
return declareOk.getMessageCount();
Run Code Online (Sandbox Code Playgroud)

但我想知道未确认消息的数量.

我已经看到RabbitMQ管理工具包含了这些信息(对于每个队列,它给出了Ready/Unacked和Total消息的数量),我想必须有一种从Java/Spring中检索它的方法.

谢谢

UPDATE

Oks,似乎没有办法以编程方式完成,因为配置/队列的列表不是AMPQ的一部分.

可以启用管理插件并查询有关队列的REST Web服务(以及其他内容).更多信息:

http://www.rabbitmq.com/management.html

Mas*_*ant 12

正如您在更新中所说,如果启用管理插件,您可以查询其余的api:

例如:

`http://username:password@queue-server:15672/api/queues/%2f/queue_name.queue`
Run Code Online (Sandbox Code Playgroud)

这将返回json(除其他外)

  • messages_unacknowledged
  • messages_ready

如果你有一条通往服务器的安全路线,这是件好事.

  • 使用RabbitMQ 3.4.1,我不得不在路径的末尾省略`.queue`以使其工作. (4认同)