ActiveMQ Artemis:通过JMX获取接受者列表



如何通过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证书重载问题。

ActiveMQServerControlMBean上有一个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命令的输出中检查它们。

相关内容

  • 没有找到相关文章

最新更新