【发布时间】:2014-03-02 01:54:49
【问题描述】:
考虑以下设置:
所以有一个 JMX 服务器,我们希望它可以从不同的 JMX 客户端访问,但问题是这些不同的 JMX 客户端通过不同的名称/地址知道 HostX。举例来说,假设 HostA 通过名称 hostx 知道 HostX,但 HostB 通过名称知道 HostX hostxshadow。
我正在寻找有关如何在以下情况下解决此问题的建议:
我可以控制 JMX 客户端和 JMX 服务器的源代码。
我无法控制源代码,即我可以在 JVM 上设置系统属性,但仅此而已。
要解决的基本问题是,在 RMI 世界中,服务器端决定客户端应该如何连接(对吗?)。所以设置例如HostX 上的java.rmi.server.hostname 无济于事。在我看来,我只能让 HostA 高兴或 HostB 高兴,但不能同时让两者高兴。
是否真的可以得出结论,任何 RMI 服务器只有在所有客户端都使用相同的名称来访问它时才能工作?
【问题讨论】:
-
你能通过将同名解析为不同的IP来解决这个问题吗?那么 HostA 在查找
hostx时获取的是内部 IP,而 HostB 获取的是影子 IP? -
我无法控制部署 JMX 解决方案的环境。