JMX 和 RMI 之间的区别

2022-09-02 05:32:04

JMX的目的是什么,它的用途是什么?我一直在浏览JMX上的一些教程,他们所做的就是注册一些Mbeans并从jconsole调用这些Mbeans。如果这是它的目的,那么JMX和RMI(远程过程调用)有什么区别?

提前致谢!


答案 1

JMX architecture.

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

连接器使 Java 管理扩展 (JMX) 技术 MBean 服务器可供基于 Java 技术的远程客户端访问。连接器的多种不同实现都是可能的。特别是,用于通过客户端和服务器之间的连接进行通信的协议有许多可能性。JMX 远程 API 规范定义的一些连接器是

  • "RMI 连接器“:符合 JMX 远程 API 标准的每个实现都必须支持此标准远程方法调用 (RMI) 协议。
  • "通用连接器“:JMX远程API标准还定义了一个直接基于TCP套接字的可选协议,称为JMX消息传递协议(JMXMP)。该标准的实现可以省略 JMXMP 连接器,但不得省略 RMI 连接器。Java SE 平台不包括可选的 JMXMP 连接器。
  • "用户定义的协议“:连接器还可以实现 JMX 技术中未定义的协议。

如果您查看上述体系结构,连接器使用各种通信框架()提供对MBeanServer API的完全远程访问,而适配器使API适应另一个协议或基于Web的GUI。RMI, IIOP, JMS, WS-* …(SNMP, …)(HTML/HTTP, WML/HTTP, …).

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

总而言之,JMX是一种Java技术,RMI是用于远程方法调用的Java特定实现的远程过程调用接口,可以在JMX中使用以进行远程通信。


答案 2

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

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


推荐