JMX的目的是什么,它用于什么?我一直在浏览一些关于JMX的教程,它们只是注册一些Mbean并从jconsole调用这些Mbean。如果这就是它的目的,那么JMX和RMI(远程过程调用)之间有什么区别呢?
提前感谢!
JMX的目的是什么,它用于什么?我一直在浏览一些关于JMX的教程,它们只是注册一些Mbean并从jconsole调用这些Mbean。如果这就是它的目的,那么JMX和RMI(远程过程调用)之间有什么区别呢?
提前感谢!
JMX中,我们使用ObjectName
和objectReference
在MBean服务器中注册我们的对象。然后我们可以远程更改属性或调用方法。
连接器使Java Management Extensions (JMX)技术MBean服务器对远程Java技术客户端可访问。有许多不同的连接器实现方式。特别是,在客户端和服务器之间通信的协议有许多可能性。一些由JMX Remote API规范定义的连接器是:
如果您看一下上面的架构图,连接器使用各种通信框架(RMI、IIOP、JMS、WS-*
等)提供对MBeanServer API的完全远程访问,而适配器则将API适配到另一个协议(SNMP、...
)或Web-based GUI(HTML/HTTP、WML/HTTP、...
)。
通常我们使用JMX连接器连接到MBean服务器,但也可以选择其他连接器。
总之,JMX是一种Java技术,RMI是用于远程方法调用的Java特定实现的接口,可在JMX中用于远程通信。
“远程过程调用”是分布式计算概念,其中在一个主机上运行的进程可以调用另一个远程主机上的过程。Java中的RMI就是这个概念的一种实现。
MBeans是可注册到JMX总线的bean类,以便监听总线上到达的事件、将事件发送到总线上、收集来自其他参与MBeans的各种数据等。它通常用于应用程序服务器的健康监控等。它可以检查活动连接数、可用内存量和许多其他统计数据,以供分析引擎进行分析。是的,它们可以使用RPC机制远程调用。这对其作为数据收集器的功能至关重要,因为在应用服务器集群中,必须从所有收集器中获取数据并在一个地方汇总进行分析。
JMX是一个通用的API,用于发布接口以监视Java应用程序的内部情况(一种Java版本的SNMP)。
RMI是远程方法调用的缩写,是Java特定实现的远程过程调用接口,它们完全没有关系。