Spring RabbitMQ获取所有声明的队列

时间:2013-03-01 11:39:33

标签: java spring rabbitmq

我正在尝试使用spring Rabbit库获取特定虚拟主机的所有已声明队列的列表。但我看不出你是怎么做到的。确实存在一个允许您声明队列的RabbitAdmin类,但是您无法检索现有队列的列表。

有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:4)

您无法从Spring / Java客户端执行此操作。

相反,有一个REST API是管理插件http://www.rabbitmq.com/management.html

的一部分

看一看 http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_0_2/priv/www/api/index.html 完整的参考。

您将对/api/queues部分感兴趣,以获取所有队列或/api/queues/vhost获取给定虚拟机上的队列

答案 1 :(得分:3)

对于那些在2016年阅读的人 - 看看Hop(https://github.com/rabbitmq/hop),它的目的是为Rabbit包装RabbitMQ管理API。

答案 2 :(得分:2)

Spring现在也有一个实现

http://docs.spring.io/spring-amqp/reference/htmlsingle/#management-template

启用管理插件后,RabbitMQ服务器会公开REST API以监视和配置代理。现在提供了API的Java绑定。通常,您可以直接使用该API,但提供了一个便利包装器,以便将熟悉的Spring AMQP Queue,Exchange和Binding域对象与API一起使用。当直接使用com.rabbitmq.http.client.Client API(分别为QueueInfo,ExchangeInfo和BindingInfo)时,可以获得更多有关这些对象的信息。 RabbitManagementTemplate类为管理api提供操作。与这个问题有关的两个是

List<Queue> getQueues();

List<Queue> getQueues(String vhost);