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