在artemis web控制台中有一个选项可以获取所有队列的列表。
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
listQueues
操作对于筛选或分页队列列表非常有用。它有三个参数options
、page
和pageSize
。options
是一个用于过滤队列的JSON字符串,即{"字段":","操作":","值":"}。page
和pageSize
参数允许对结果进行分页,即获得名称为TEST
:的前100个队列
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}是与jolokia-access.xml
文件中的标记allow-origin
定义的限制相匹配的请求来源。
${BROKER_ENDPOINT}是由bootstrap.xml
文件中的标记web
的属性bind
定义的代理HTTP服务器的端点。
${BROKER_NAME}是由broker.xml
文件中的标记name
定义的代理名称。
使用默认值,命令变为:
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
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"