jakarta-ee - JMX 和 RMI 的区别

标签 jakarta-ee jmx java

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

提前致谢!

最佳答案

JMX architecture.

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

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

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

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

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

总而言之,JMX 是一种 java 技术,而 RMI 是针对远程方法调用的一种 Java 特定实现的远程过程调用接口(interface),可以在 JMX 中用于远程通信。

关于jakarta-ee - JMX 和 RMI 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100793/

相关文章:

java - 指定 Apache TomEE 的应用程序名称

Eclipse 在 wtpwebapps 中生成我的类三次

java - setContextClassLoader 的含义

java - 使用 Zabbix 监控同一台机器上的两个 Java 进程

Java swing如何在文本位置的菜单中设置图标

java - Spring Conversion Service,将表单绑定(bind)到嵌套对象

java - 尝试注册默认的 QuartzSchedulerMBean

java - 如何访问内存池 mbean

java - 如何通过使用Maven导入另一个包类?

java - 如何让 IzPack 将我的程序添加到 Windows 注册表?