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

ActiveMQ Artemis: Obtain list of acceptors via 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 中引入的更改有关,请参阅 question on TLS certificate reload

ActiveMQServerControl MBean 上有一个 getConnectors 方法,这就是 Jolokia 的 read 命令 returns 这些值的原因。但是没有对应的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 命令的输出中检查它们。