如何通过Jolokia/JMX(和curl(检索ActiveMQ Artemis中配置的接受程序列表?我需要在TLS证书更新后重新加载接收器,但似乎传递接收器名称是强制性的。不幸的是,我不能只传递一个静态名称,因为我们使用不同的受体,都使用TLS——并且不想仅仅因为受体配置发生了变化就更改重新加载代码。
curl -s -f -u username:password -H 'Origin: localhost' 'http://127.0.0.1:8161/console/jolokia/read/org.apache.activemq.artemis:broker="borker-primary-0"'
显示了连接器,但没有显示接收器。
此问题与v2.18.0中引入的更改有关,请参阅TLS证书重载问题。
主ActiveMQServerControl
MBean上有一个getConnectors
方法,这就是Jolokia的read
命令返回这些值的原因。然而,没有相应的getAcceptors
方法,但您可以使用Jolokia的list
命令来有效地获得相同的信息。使用类似的东西:
curl -s -f -u username:password -H 'Origin: localhost' 'http://127.0.0.1:8161/console/jolokia/list/org.apache.activemq.artemis:broker="borker-primary-0"'
然后查看component=acceptors
的结果,您将能够找到所有具有各自名称的接受者。
这有点像黑客,但考虑到缺乏获取接受者的管理方法,这是目前必要的。我打开了ARTEMIS-3601,并发送了一份PR来处理这个用例,所以在未来的版本中,这是不必要的。您只需要调用getAcceptors
或从Jolokia的read
命令的输出中检查它们。