ActiveMQ Artemis: получить список всех очередей

В веб-консоли artemis есть возможность получить список всех очередей.

http://localhost:8161/console/jolokia/exec/org.apache.activemq.artemis:broker=%22localhost%22/listQueues(java.lang.String,int,int)

Как я могу получить список всех очередей с помощью команды curl, передав этот URL-адрес выше, или есть ли другой способ получить список всех очередей?

Я использую artemis 2.11.0


person Bhavesh Kharwa    schedule 07.07.2020    source источник


Ответы (2)


Операция listQueues полезна для фильтрации или разбиения на страницы списка очередей. Он имеет 3 параметра options, page и pageSize. options - это строка JSON для фильтрации очередей, то есть {поле:, операция:, значение:}. Параметры page и pageSize позволяют разбивать результат на страницы, т.е. получать первые 100 очередей, содержащихся в имени TEST:

curl -H "Origin:${REQUEST_ORIGIN}" -u admin:admin http://${BROKER_ENDPOINT}/console/jolokia/exec/org.apache.activemq.artemis:broker=%22${BROKER_NAME}%22/listQueues/%7B%22field%22:%22name%22%2C%22operation%22:%22CONTAINS%22%2C%22value%22:%22TEST%22%7D/1/100

$ {REQUEST_ORIGIN} - источник запроса, соответствующий ограничению, определенному тегом allow-origin в файле jolokia-access.xml.

$ {BROKER_ENDPOINT} - это конечная точка HTTP-сервера брокера, определяемая атрибутом bind тега web в bootstrap.xml файле.

$ {BROKER_NAME} - это имя брокера, определенное тегом name в файле broker.xml.

Используя значения по умолчанию, команда принимает следующий вид:

curl -H "Origin:http://localhost" -u admin:admin http://localhost:8161/console/jolokia/exec/org.apache.activemq.artemis:broker=%220.0.0.0%22/listQueues/%7B%22field%22:%22name%22%2C%22operation%22:%22CONTAINS%22%2C%22value%22:%22TEST%22%7D/1/100
person Domenico Francesco Bruscino    schedule 07.07.2020

Метод listQueues действительно предназначен для команды artemis queue stat, доступной из командной строки. Для поддержки постраничного вывода и различных возвращаемых параметров требуются специальные входные параметры.

Если вы хотите получить список очередей от брокера, лучшим вариантом будет getQueueNames метод. Вы можете использовать что-то вроде следующей команды curl:

curl -s -k --user admin:admin -H "Origin: http://localhost:8161" "http://localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=%22localhost%22/QueueNames"
person Justin Bertram    schedule 07.07.2020