栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

增加一个mbean

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

增加一个mbean

我们经常打开jconsole可以看到如下的画面

我们可以看到mbean是有属性和操作两个子目录。
属性是可以获取到最新的数据。操作就是执行一些方法。
下面讲如何增加一个自己的mbean。

使用注解定义接口

增加一个mbean可以使用命名规范也可以使用注解。我比较倾向注解。

@MXBean
public interface MyInterface {
     void hello();
     int getInfo();
     String sendInfo(String info);
     InfoBo getInfoBo();
}

这里定义了4个方法。给接口增加@MXBean注解。get系列表示的是属性,其他的都是操作。

实现接口
public class MyBean implements MyInterface {

    private int num=0;

    public void hello() {
 num++;
 System.out.println("hello");
    }

    public int getInfo() {
 return num;
    }

    public String sendInfo(String info) {
 return info;
    }

    public InfoBo getInfoBo() {
 return new InfoBo(2,"this is bo");
    }
}

这里的InfoBo就是一个有两个成员变量的普通javabean。之所以增加这个例子,是因为对象返回在jconsole里显示有点小不同。

注册mbean
 MBeanServer server = ManagementFactory.getPlatformMBeanServer();
 ObjectName objectName =new ObjectName("com.xp:name=MyBean,type=mybeans");
 server.registerMBean(new MyBean(),objectName);

这里的objectName是path。jmx组织维护是树形结构。
com.xp这个就是外层的包,包下面是type,type下面是name。

打开jsonsole


sendinfo是可以输入值进行调用的

在infoBo里我们只能看到一个对象类

我们需要用鼠标双击值

我们才可以看到数据的数值。

mbean优势

上面介绍了编写mbean的方式,基本所有的开源软件都会编写mbean来进行指标的暴露。这样测试方便。基本只需要一个jconsole就可以做到数据的测试了。同样也有业界的工业标准,例如jmx_exporter转化jmx到prometheus数据,jmx_trans这种直接做转化输出的。编写好mbean之后比较容易和业界标准配合。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号