2013-03-01 2 views
3

Я пытаюсь получить список всех объявленных очередей для конкретного виртуального хоста, используя весенние библиотеки Rabbit. Но я не понимаю, как вы это делаете. Существует класс RabbitAdmin, который позволяет вам объявлять очередь, но вы не можете получить список существующих очередей.Spring RabbitMQ получить все объявленные очереди

Любые идеи?

Спасибо.

ответ

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 получить очереди на данный виртуальный хост

2

Для тех, кто читает, что в 2016 году - Посмотрите на Hop (https://github.com/rabbitmq/hop), он стремится обернуть API управления RabbitMQ для Java.

1

Spring имеет реализацию в настоящее время, а также

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

Когда плагин управления включен, сервер RabbitMQ выставляет REST API для мониторинга и настройки брокера. Теперь предоставляется привязка Java для API. В общем, вы можете использовать этот API напрямую, но удобная обертка предоставляется для использования знакомых объектов домена Spring AMQP Queue, Exchange и Binding с API. Гораздо больше информации доступно для этих объектов при непосредственном использовании API com.rabbitmq.http.client.Client (QueueInfo, ExchangeInfo и BindingInfo соответственно). Класс RabbitManagementTemplate предоставляет операции для apis управления. Эти два вопроса касаются этого вопроса:

List<Queue> getQueues(); 

List<Queue> getQueues(String vhost); 
Смежные вопросы