gpt4 book ai didi

java - 如何为多个 JVM 使用一个 JMX 代理?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:59 27 4
gpt4 key购买 nike

当在一台机器上运行多个 JVM(以及单个 IP 地址)时,在每个 JVM 中合并 JMX 需要一个单独的端口。由于我不会进入已配置端口的原因在这种环境中非常重要,因此我希望在每台机器上都有一个 JMX 代理,它能够提供对每个本地 JVM 及其 JMX 数据的访问。这类似于本地 SNMP 守护进程,代理在每个单独的进程中运行。

但是,临时端口很好,因为它们在我有权访问的用于显式配置 JMX 的竞争端口范围之外。

我知道像 Oracle Coherence 这样的产品在内部执行此操作,但是是否有执行此操作的通用解决方案?

最佳答案

OpenDMK支持MBeanServer Cascading这在逻辑上就是您想要实现的目标,即在一个 MBeanServer 的外观下公开多个 MBeanServer。问题是 JVM 间 JMX 远程处理没有“端口自由”形式,即使对于同一主机上的 JVM 也是如此,因此每个 JVM 仍然需要绑定(bind)至少 1 个端口,即使它仅在本地主机上访问也是如此。 .(使用 JMXMP 是最小化端口使用的最佳选择,因为它是单套接字解决方案,而不是 RMI,后者是......非确定性的)。如果您可以接受这一点,那么级联实际上可以很好地工作,并且该协议(protocol)是在标准的现代 JMX 远程处理规范中实现的。

我能想到的允许比主机上的实际端口多得多的 JVM/JMX 服务器的唯一其他方法是开发“无 TCP”的 JMX 连接器服务提供程序或多播。

关于java - 如何为多个 JVM 使用一个 JMX 代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6832063/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com