如何从命令行进行 artemis 队列?



有什么办法可以清除阿尔忒弥斯队列吗?我已经通过cd data/paging清除了.这是我安装我的阿尔忒弥斯经纪人的位置。

有一个名为haw.io的 UI 阿尔忒弥斯 ,虽然我已经删除了分页目录中的所有文件,但它在 UI 上显示消息,在正确的情况下不应该存在。

请指教。

从代理实例 bin 文件夹中的命令行:

artemis queue delete --user user --password password --name queue-name

Artemis Broker 提供了一个 REST 管理 API,用户可以使用它在运行时读取和更改代理的许多参数。因此,可以使用如下所示的命令行从命令行清除队列:

curl -X POST -H "Content-Type: application/json" -d  '{ "type": "EXEC", "mbean": "org.apache.activemq.artemis:address="test.performance.queue",broker="0.0.0.0",component=addresses,queue="test.performance.queue",routing-type="anycast",subcomponent=queues", "operation": "removeMessages(java.lang.String)", "arguments": [ "" ] }' http://localhost:8161/jolokia/exec | jq .

在上面的示例中,我正在清除代理实例0.0.0.0上名为test.performance.queue的队列的内容。这些参数需要针对具体情况进行调整。

Obs:请注意,我使用jq .只是为了让响应 JSON 更漂亮(如果您不关心响应,则不需要这样做(:

{
"request": {
"mbean": "org.apache.activemq.artemis:address="test.performance.queue",broker="0.0.0.0",component=addresses,queue="test.performance.queue",routing-type="anycast",subcomponent=queues",
"arguments": [
""
],
"type": "exec",
"operation": "removeMessages(java.lang.String)"
},
"value": 13001,
"timestamp": 1503740691,
"status": 200
}

另一种可能性可能是使用BMIC工具,该工具提供对用于管理ActiveMQ 6和Artemis代理的多个API的访问(免责声明:我是该工具的维护者(。使用它,您可以使用以下命令执行相同的操作:

./bmic queue -u admin -p admin -s localhost --name test.performance.queue --purge

该工具相对于 curl 命令的一个好处是,您无需关心代理参数,因为该工具将(尝试(为您执行发现。

有很多方法可以管理Apache ActiveMQ Artemis的实例。 例如,您可以使用:

  • JMX通过GUI工具,如JConsole或JVisualVM
  • 基于网络的控制台
  • 休息通过乔洛基亚
  • 管理消息(例如通过核心、JMS、AMQP 等(

但是,您不能简单地从代理下方删除文件。

相关内容

  • 没有找到相关文章

最新更新