【问题标题】:What is the difference between a standard MBean and dynamic MBean?标准 MBean 和动态 MBean 有什么区别?
【发布时间】:2013-04-25 12:32:08
【问题描述】:

两者有什么区别:

  1. 标准 MBean
  2. 动态 MBean

各自的优缺点是什么?我们应该何时选择这两个组件中的任何一个来管理资源?

【问题讨论】:

    标签: java jmx mbeans


    【解决方案1】:

    标准 mbean 具有固定的元数据,在 MBean 的生命周期内不会更改。动态 MBean 动态定义它们的元数据,并且可以修改和重新发布它们的元数据。想想这个[糟糕]人为的Java类比:假设您编写了一个列出目录中文件数量的类。标准的类方法可能如下所示:

    public int getFileCount(String directoryName)

    另一方面,这个类的 Dynamic MBean 版本会从没有方法开始,但是当它启动时,它会扫描可用的目录,并为找到的每个目录创建一个新方法:

    public int getFileCountDir1();
    public int getFileCountDir2();
    ....
    public int getFileCountDirN();
    

    所以这不是一个非常有用的设置,但假设您想创建一个显示所有 JVM 系统属性的 MBean。嗯……系统属性发生了变化……并且没有合理的方法可以提前知道哪些属性键将被定义,因此这将更好地表示动态 MBean 的优点。

    利弊归结为:

    1. 标准 MBean 易于创建,现有的类实例可以作为标准 mbean 进行包装和公开。
    2. 动态 MBean 在服务于有用的目的时很酷,但实施起来要付出更多努力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      相关资源
      最近更新 更多