1

在我的应用程序中,我创建和维护与远程 JVM 的 MBeanServer 的多个连接。我想汇集这些连接。但不确定他们是否对远程 MBeanServer 施加了任何负载。

我想知道维护与远程 JVM MBean 服务器的空闲 rmi JMX 连接是否会给远程 JVM 带来任何负载?

4

1 回答 1

1

这取决于实际的 JMX 远程协议。JMX/RMI实际上非常健谈,并且会启动连接检查线程。JMXMP效率更高,但您仍会看到额外连接的一些累积开销,因此它将在资源利用率和建立新(或共享)连接的成本之间进行权衡。

你能详细说明你为什么要合并吗?

==== 更新 ====

您可以使用Apache Commons Pool。创建一个GenericKeyedObjectPool的实例。 PoolableObjectFactory实现应该包装JMXConnectorFactory并且您可以创建一个复合键类,其中包含JMXServiceURL和借用连接时要使用的凭据。然后对象工厂可以在借用调用上分解密钥,并在激活调用上获取经过身份验证的连接。

实际的池化对象应该是某种包装器,因为您需要在 makeObject 调用中创建一个“断开连接”的实例(并且在标准 JMX 远程处理中没有这样的东西),然后如果它没有连接则在激活时“连接”它已经。

于 2013-01-30T13:14:40.350 回答