跳到主要内容
版本:7.0.3

使用JSR-160连接器

Hunyuan 7b 中英对照 Using JSR-160 Connectors

对于远程访问,Spring JMX模块在org.springframework.jmx.support包中提供了两种FactoryBean实现,用于创建服务器端和客户端连接器。

服务器端连接器

要使用Spring JMX创建、启动并公开一个JSR-160的JMXConnectorServer,可以使用以下配置:

<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean"/>

默认情况下,ConnectorServerFactoryBean会创建一个绑定到service:jmx:jmxmp://localhost:9875JMXConnectorServer。因此,serverConnector bean会通过JMXMP协议在本地主机(localhost)的9875端口上将本地的MBeanServer暴露给客户端。需要注意的是,根据JSR 160规范,JMXMP协议被标记为可选协议。目前,主要的开源JMX实现(MX4J)以及JDK自带的JMX实现都不支持JMXMP协议。

要指定另一个URL并将JMXConnectorServer本身注册到MBeanServer上,您可以分别使用serviceUrlObjectName属性,如下例所示:

<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=rmi"/>
<property name="serviceUrl"
value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/myconnector"/>
</bean>

如果设置了ObjectName属性,Spring会自动将您的连接器注册到该ObjectName下的MBeanServer中。以下示例展示了在创建JMXConnector时可以传递给ConnectorServerFactoryBean的所有参数:

<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=iiop"/>
<property name="serviceUrl"
value="service:jmx:iiop://localhost/jndi/iiop://localhost:900/myconnector"/>
<property name="threaded" value="true"/>
<property name="daemon" value="true"/>
<property name="environment">
<map>
<entry key="someKey" value="someValue"/>
</map>
</property>
</bean>

请注意,当您使用基于RMI的连接器时,需要启动查找服务(tnameservrmiregistry)才能完成名称注册。

客户端连接器

要创建一个连接到远程支持JSR-160的MBeanServerMBeanServerConnection,你可以使用MBeanServerConnectionFactoryBean,如下例所示:

<bean id="clientConnector" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
<property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/jmxrmi"/>
</bean>

通过Hessian或SOAP进行JMX通信

JSR-160 允许对客户端与服务器之间的通信方式进行扩展。前面章节中展示的示例使用了 JSR-160 规范所要求的强制性基于 RMI 的实现(IIOP 和 JRMP),以及可选的 JMXMP。通过使用其他提供者或 JMX 实现(例如 MX4J),你可以利用 SOAP 或 Hessian 等协议,而不仅仅是简单的 HTTP 或 SSL 等协议,如下例所示:

<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=burlap"/>
<property name="serviceUrl" value="service:jmx:burlap://localhost:9874"/>
</bean>

在前面的例子中,我们使用了MX4J 3.0.0。有关更多信息,请参阅MX4J的官方文档。