背景
之前看zk代码的时候,一直不清楚jmv是干啥的,去学习了一下
主要学习了
http://blog.csdn.net/u013256816/article/details/52840067 以及 《jmx in action》
感受
相关定义,demo的感受
目前jmx相关资料好少,《jmx in action》年代又就远了,看了4章,demo懂了但是感觉没必要看下去。
而且似乎不是很火。
主要作用就是暴露出一些接口,操作给外部调用,实现从JVM A调用JVM B的方法(B必须有相关MBean定义,对应适配器)
可以用RMI方式,远程client端用JConsole
或者用HTTP adapter,远程直接输入链接
即可操作JVM B里注册的Bean的相关方法等
自带的jconsole是一个有意思的东西,包括死锁检测等等。
关于场景使用
现在有什么场景会有jmx相关的需求?分监控以及管理思考。
监控
自己写jmx,定义Mbean,给外部暴露信息,似乎需求不是那么强烈,打日志就能解决。
或者暴露接口支持http请求等。
管理
就是动态的设置一个值,业务场景上,这个功能有点类似于中心配置化。
中心配置化也可以不用JMX完成,至少ZOOKEEPER可以办到吧?
后续
学习了这一块之后,让我对下面几块感兴趣
死锁检测
http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html
这个里面的这一段感兴趣,定位死锁的,目前看了下也没有特别好的demo可以参考,自己可以写个死锁然后用JMX方式来检测一下
The Threading MXBean provides several other useful operations that are not covered by the Threads tab.
findMonitorDeadlockedThreads
: Detects if any threads are deadlocked on the object monitor locks. This operation returns an array of deadlocked thread IDs.
getThreadInfo
: Returns the thread information. This includes the name, stack trace, and the monitor lock that the thread is currently blocked on, if any, and which thread is holding that lock, as well as thread contention statistics.
getThreadCpuTime
: Returns the CPU time consumed by a given thread
You can access these additional features via the MBeans tab by selecting the Threading MXBean in the MBeans tree. This MXBean lists all the attributes and operations for accessing threading information in the Java VM being monitored. See [Monitoring and Managing MBeans](http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html#gdeap).
JConsole
JMX感觉没多大意义,但是JConsole就不一样了,比如各种内存空间
内存空间的区分以及可视化管理
jconsole页面性能调优的时候,看这个图应该很有感觉
备注
包下载
demo里面需要jdmk的包,这里备注下,在这里
http://www.datanucleus.org/downloads/maven2/com/sun/jdmk/jmxtools/1.2.1/
refer
jmx
http://www.tianshouzhi.com/api/tutorials/jmx
http://www.open-open.com/lib/view/open1397359125465.html
http://blog.csdn.net/u013256816/article/details/52840067 系列
https://www.ibm.com/developerworks/cn/java/j-lo-jse63/index.html
http://docs.oracle.com/javase/8/docs/technotes/guides/jmx/overview/JMXoverviewTOC.html
http://ifeve.com/%E3%80%8Aspring-5%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E3%80%8B-jmx/
http://www.blogjava.net/simonshen/archive/2011/04/03/347589.html
《jmx in action》
jconsole
http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html
http://jiajun.iteye.com/blog/810150
http://blog.csdn.net/defonds/article/details/45064297
http://www.cnblogs.com/kongzhongqijing/articles/3621441.html
网友评论