Jakarta ee JMX和RMI之间的差异

Jakarta ee JMX和RMI之间的差异,jakarta-ee,jmx,java,Jakarta Ee,Jmx,Java,JMX的用途是什么?它的用途是什么?我已经浏览了一些关于JMX的教程,它们所做的只是注册一些MBean并从jconsole调用这些MBean。如果这就是它的目的,那么JMX和RMI(远程过程调用)之间的区别是什么 提前谢谢 “远程过程调用”是一种分布式计算概念,其中一台主机上运行的进程可以调用另一台远程主机上的过程。Java中的RMI就是这个概念的一个实现 MBean是可以注册到JMX总线的bean类,用于侦听总线上到达的事件或发送总线上的事件,或从其他参与MBean收集各种数据等。它最常用于应

JMX的用途是什么?它的用途是什么?我已经浏览了一些关于JMX的教程,它们所做的只是注册一些MBean并从jconsole调用这些MBean。如果这就是它的目的,那么JMX和RMI(远程过程调用)之间的区别是什么


提前谢谢

“远程过程调用”是一种分布式计算概念,其中一台主机上运行的进程可以调用另一台远程主机上的过程。Java中的RMI就是这个概念的一个实现


MBean是可以注册到JMX总线的bean类,用于侦听总线上到达的事件或发送总线上的事件,或从其他参与MBean收集各种数据等。它最常用于应用程序服务器等的运行状况监视。它可以检查活动连接的数量,分析引擎的可用内存量和许多其他统计信息。是的,可以使用RPC机制远程调用它们。这对于其作为数据采集器的功能至关重要,因为在应用程序服务器集群中,必须从所有采集器获取数据,并在一个位置进行整理以进行分析

JMX是一个通用API,用于发布一个接口来监视Java应用程序(SNMP的Java版本)的内部

RMI用于远程方法调用远程过程调用接口的特定于Java的实现,它们根本不相关。

是的,在JMX中,我们使用
ObjectName
objectReference
在mbean服务器中注册对象。然后,我们可以远程更改属性或调用方法

连接器使基于Java技术的远程客户端可以访问Java管理扩展(JMX)技术MBean服务器。特别是,用于通过客户端和服务器之间的连接进行通信的协议有很多种可能性

  • RMI连接器”:符合JMX远程API标准的每个实现都必须支持此标准远程方法调用(RMI)协议
  • 通用连接器”:JMX远程API标准还定义了一个直接基于TCP套接字的可选协议,称为JMX消息传递协议(JMXMP)。标准的实现可以省略JMXMP连接器,但不能省略RMI连接器。JavaSE平台不包括可选的JMXMP连接器
  • 用户定义协议”:连接器还可以实现JMX技术中未定义的协议
如果您查看上述体系结构,则连接器使用各种通信框架(
RMI、IIOP、JMS、WS-*…
)提供对MBeanServer API的完全远程访问,而适配器将API适配到另一个协议
(SNMP…
)或基于Web的GUI
(HTML/HTTP、WML/HTTP…)

通常,我们使用JMX连接器连接到MBean服务器,但我们也可以选择其他连接器


总之,JMX是一种java技术,RMI是用于远程方法调用的远程过程调用接口的java特定实现,可在JMX中用于远程通信。

感谢您的回答。还有一个相关问题,我们不能将RMI用于同样的目的吗?@hnm:RMI处理的是远程调用方法,仅此而已。i、 e它提供一个存根类,该存根类序列化输入参数,将调用编码为数据,通过线路发送数据,其中称为骨架的服务器端实体获取数据,对其进行解码以了解在服务器端进程的哪个类上调用哪个方法并进行调用。一旦调用完成,输出参数或异常将由骨架序列化并发送回存根,存根将再次对其进行反序列化以将其返回给调用程序。这只是远程调用的一种机制。@hnm:(continuation)MBean是与被监视的应用程序交互的特殊类,并提供检索数据的方法。从理论上讲,可以使用RMI调用这些方法。但是JMX机制提供了更好的方法来做同样的事情。@rahulmohan我见过ApacheTomcat使用JMX。JMX是否也提供守护程序对象?