【问题标题】:ActiveMQ Artemis: Obtain list of acceptors via JMXActiveMQ Artemis:通过 JMX 获取接受者列表
【发布时间】:2021-12-03 12:49:12
【问题描述】:

如何通过 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

【问题讨论】:

    标签: jmx activemq-artemis


    【解决方案1】:

    主要的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 命令的输出中检查它们。

    【讨论】:

    • 谢谢你,贾斯汀。该解决方案感觉有点像 hack,但确实有效。
    • 我更新了我的答案以解决您的评论。希望有帮助!
    • 确实,是的。感谢您的 PR,非常感谢。期待包含getAcceptors的下一个版本。
    猜你喜欢
    • 2011-11-17
    • 2021-06-15
    • 1970-01-01
    • 2018-10-27
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多