JMX经验点滴
来源:互联网 发布:淘宝巴黎心店卖假货 编辑:程序博客网 时间:2024/05/19 01:59
使用Java构建的大规模分布式架构网站。为了了解整个网站中的每个节点运行状况,在考虑性能、开发速度而不考虑多开发语言支持的情况下,JMX无疑是最适合的方式。
JMX(Java 管理扩展,Java Management Extensions)是Sun公司在J2SE 5中提出来的。JMX可以访问到java应用的信息,也可以访问到JVM的信息。一个最简单的方式,单独设立一个监控节点,轮训访问整个网站所有节点的信息,发现任何一台有问题,给运维人员发邮件或者短信报警。
对于Java开发工程师而言,开发量真心不大。简单例子(标准MBean,这里不讨论MXBean,Dynamic,Model和Open这些MBean)如下:
对于需要监控的数据类,创建其父接口,名字为类名+MBean。假设有一个管理类ConfigureManager,则让它的父接口为ConfigureManagerMBean
在main函数中,添加如下语句:
try {mBeanServer = ManagementFactory.getPlatformMBeanServer();objectName = new ObjectName("net.sourceforge.ppcool:id=ConfigureManager");mBeanServer.registerMBean(ConfigureManager.Instance(), objectName);} catch (Exception e) {logger.error(e.getMessage(), e);}
即可让ConfigureManager内部数据暴露出来。
运行此程序时,需要在java执行启动命令中添加以下红色部分
nohup java -agentpath:/app/jprofiler8/bin/linux-x86/libjprofilerti.so=port=8849 -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=外网IP地址 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=提供服务的端口号 -Dcom.sun.management.jmxremote.ssl=false -jar ppgateway.jar /app/javagateway/gateway.conf &
分别说明一下:
-Dcom.sun.management.jmxremote 提供本地JMX查询服务
-Djava.rmi.server.hostname=外网IP地址 提供远程JMX查询服务,需要IP地址
-Dcom.sun.management.jmxremote.authenticate=false 无需做密码认证
-Dcom.sun.management.jmxremote.port=提供服务的端口号 提供远程JMX查询服务,需要端口号
-Dcom.sun.management.jmxremote.ssl=false 不使用SSL
具体其他信息,你可以参考:http://docs.oracle.com/javase/1.5.0/docs/guide/management/
对于节点的Java开发工程师,无需和监控点的开发工程师对接调试。只需要使用JConsole(在JDK的bin目录下)即可。
- JMX经验点滴
- 点滴经验
- 点滴经验
- 经验点滴
- Win32ASM经验点滴
- VB编程经验点滴
- 编程经验点滴
- MRTG使用经验点滴
- linux使用经验点滴
- php经验点滴
- C#经验点滴
- log4j设置经验点滴
- Win32ASM经验点滴
- Eclipse开发经验点滴
- C#经验点滴
- verilog设计经验点滴
- VHDL经验点滴
- VB编程经验点滴
- JAVA并行异步编程线程池+FutureTask
- ios-通过NSCalendar来获取当前时间的年、月、日、时、分、秒
- 基于linux的OLED移植过程
- SQL字符串基本操作小集
- java——GUI
- JMX经验点滴
- 提升HBase写性能
- java多线程(二)线程的互斥
- 线性时间内筛素数和欧拉函数
- hdu 1241 Oil Deposits
- 赛门铁克250-316大脑转储
- wince 获取项目当前路径
- oracle 可传输表空间
- java多线程(三)线程之间的通信