5

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

有任何想法吗?

谢谢。

4

3 回答 3

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获取给定虚拟主机上的队列的部分感兴趣

于 2013-03-02T08:51:42.547 回答
3

Spring现在也有一个实现

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

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

List<Queue> getQueues();

List<Queue> getQueues(String vhost);
于 2016-09-29T21:48:55.580 回答
3

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

于 2016-01-22T18:48:13.697 回答