【问题标题】:ActiveMQ Artemis: Get a list of all queuesActiveMQ Artemis:获取所有队列的列表
【发布时间】:2020-09-22 21:39:33
【问题描述】:

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

【问题讨论】:

  • 好问题,我也想知道。谢谢。

标签: activemq-artemis


【解决方案1】:

listQueues 操作对于过滤或分页队列列表很有用。它有 3 个参数 optionspagepageSizeoptions是一个JSON字符串,用于过滤队列,即{"field": "", "operation": "", "value": ""}。 pagepageSize 参数允许对结果进行分页,即获取名称中包含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 Server 的端点。

${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

【讨论】:

    【解决方案2】:

    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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 2023-02-12
      • 1970-01-01
      相关资源
      最近更新 更多