mbean

JMX和MBean以及pojo-mbean学习

假如想象 提交于 2019-12-10 22:50:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近在看一个开源的Cache框架,里面提到使用JMX来查看Cache的命中率以及响应时间等,于是翻了一些JMX的文章,整理了一下。 问题:什么是JMX? 问题:JMX的架构是什么样子的? 问题:JMX以及Mbean中的 概念都有那些? 问题:如何编写一个简单的Standard MBean? 问题:如何编写一个DynamicMBean? 问题:Open MBean 和Mode MBean是作用是啥? 问题:按照MBean的规范写,是不是有点繁琐,有没有简单点的办法? 问题:什么是JMX? JMX(java management extensions)java管理程序扩展,是一个为应用程序、设备、系统等植入管理功能的框架。 JMX使用了最简单的一类javaBean,使用有名的MBean,其内部包含了数据信息,这些信息可能是程序配置信息、模块信息、系统信息、统计信息等。MBean可以操作可读可写的属性、直接操作某些函数。 问题:JMX的架构是什么样子的? 问题:JMX使用三层架构,各个层的详细描述是怎么样的? Probe Level负责资源的检测(获取信息),包含MBeans,通常也叫做Instrumentation Level。 The Agent Level 或者叫做MBean Server,是JMX的核心

只用五分钟为系统实现基于JMX的监控

心已入冬 提交于 2019-12-10 22:49:34
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> JMX 早期是作为J2EE的一部分 , 因此总给人一种开发起来会很"重"的感觉, 这让不少Java程序员宁愿选择自行实现"轻量级"方案. 时至今日, 借助一些优秀的开源项目, JMX 也可以用起来很"轻". 使用 pojo-mbean 声明MBean pojo-mbean 使用Annotation对MBean进行声明, 省去不少 JMX 规范中要求的罗嗦代码, 不知道有多罗嗦的请见 这里 . 例如, ManagableServer 希望被声明为一个MBean, 只有两个步骤: 注解 @MBean(objectName="jsmx:type=Demo") class ManagableServer { @ManagedAttribute public long getCount() {...} @ManagedAttribute public int getGauge() {...} @ManagedOperation public void shutdown() {...} } 注册 ManagableServer mBean = new ManagableServer(); new MBeanRegistration(mBean).register(); 运行之后, 你可以通过 jconsole