2

我试图理解为什么 MBean 在 Java 中如此重要,而我不记得有任何其他语言具有这样的范式或模式。

那么为什么存在 MBean,它们试图解决什么问题,以及其他语言是如何解决这个问题的呢?(我更喜欢与 Python 进行比较,因为我明白那是最好的)

4

2 回答 2

2

Java 中的 MBean 是一种管理应用程序的方法。假设您想查看执行方法需要多长时间,或者您想调整记录器设置或更改配置属性。通过 MBeanServer 的 MBean 允许您在应用程序中提供挂钩来执行此操作。您需要创建并连接您的 MBean,然后在 MBean 服务器中注册它们,该服务器将它们公开以进行管理操作(基本上从/向您的 mbean 读取/写入数据)。JConsole(与 jvm 一起提供)允许您远程或本地连接并在您的 mbean 上执行调用。还有大量使用 JMX 的工具(New Relic 和其他管理工具可能使用它)。它们特定于 Java,但其他语言可能有类似的对应物(不幸的是,我对 Java 以外的知识了解不多)。

于 2013-08-14T20:42:31.890 回答
0

MBean 不是“设计模式”。MBean 是一种接口标准,它是 JMX 的一部分。它在 JMX 之外没有任何意义。除非 JMX 在其他语言中定义了 API 绑定,否则在其他语言中不会有直接的等价物,但它没有。

它们存在的原因是因为 JMX 定义一个通用接口标准来处理这些对象是谨慎的。

他们打算解决的问题是提供一个 JMX 可以使用的一致的标准化接口。

可能存在与 JMX 具有类似功能的其他语言绑定的 API,但它们不会使用 MBean,它们会使用那些其他 API 中定义的任何内容。

如果您不使用 JMX,那么使用 MBean 将毫无意义。事实上,如果您不使用 JMX,您可能会争辩说,即使您将某个东西称为“MBean”,它在概念上也不会是一个。

于 2013-08-14T20:46:02.143 回答